使用CriteriaQuery重新实现类实例而不是Object数组

时间:2014-08-12 10:45:50

标签: java hibernate jpa jpa-2.0

我将JPA 2.0与Hibernate一起使用。 如果我想使用CriteriaQuery从表中选择某些列,我必须声明它:

CriteriaQuery<Object[]> criteria = cb.createQuery(Object[].class);
Root<Event> root = criteria.from(Event.class);
Path<Long> pid = root.get(Event_.id);
Path<Date> did = root.get(Event_.eventTime);
criteria.select( cb.array(pid, did) );
criteria.where(cb.lessThan(root.get(Event_.id), 10L));
List<Object[]> evs = em.createQuery( criteria ).getResultList();
for ( Object[] ev : evs ) {
    System.out.println(ev[0] + " " + ev[1]);
}

所以,我得到了一系列选定的属性。但是,我能以某种方式获取一个Event类的实例列表(在我的例子中),其中未选择的属性为null?

Event:
    id: 234
    typeid: null
    eventtime: 12-03-1990
    authorid: null
etc...

当我使用简单的Hibernate API标准时就是这样。

0 个答案:

没有答案