0

我的对象数组中有我的 LogEventType。有没有办法使用它的构造函数创建一个新的 LogEventType ?这是可能的,我 LogEventType 是一个映射实体,但它不是。使用 sql 和常规插入创建表 logeventtype。在这种情况下返回

new LogEventType(obj[0],obj[1]); 

会很好,但我需要稍后获取一个列表。

Session session = sessionFactory.getCurrentSession();
String queryString = "select type.eventid, type.value from logeventtype type where type.eventid = :eventid";
Query query = session.createSQLQuery(queryString).setParameter("eventid", enventId);
Object[] obj = (Object[]) query.uniqueResult();

编辑:这是我一直在尝试的

Session session = sessionFactory.getCurrentSession();
String queryString = "select new com.company.Test(type.value) from logeventtype type where type.eventid = :eventid";
Query query = session.createQuery(queryString).setParameter("eventid", 1l);
Object[] obj = (Object[]) query.uniqueResult();

我得到 logeventtype 没有映射。

4

1 回答 1

0

我可以这样做

    Query query = sessionFactory.getCurrentSession().createSQLQuery("select * from logeventtype ").addScalar("eventId", StandardBasicTypes.LONG)
            .addScalar("value", StandardBasicTypes.STRING).setResultTransformer(Transformers.aliasToBean(LogEventType.class));
于 2012-10-22T11:29:55.933 回答