Hibernate行映射器

时间:2012-10-22 07:34:55

标签: hibernate hql

我的对象数组中有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没有映射。

1 个答案:

答案 0 :(得分:0)

我可以用

做到这一点
    Query query = sessionFactory.getCurrentSession().createSQLQuery("select * from logeventtype ").addScalar("eventId", StandardBasicTypes.LONG)
            .addScalar("value", StandardBasicTypes.STRING).setResultTransformer(Transformers.aliasToBean(LogEventType.class));