如http://www.javacodegeeks.com/2012/07/ultimate-jpa-queries-and-tips-list-part_7092.html中所述,您可以从 jpa 查询中获取对象。到现在为止还挺好。
但由于我必须经常使用它,所以我想使用泛型。所以而不是
Query query = em.createQuery('select new com.model.PersonDogAmountReport(p, size(p.dogs)) from Person p');
我想
Query query = em.createQuery('select new com.model.Report<Person, Long>(p, size(p.dogs)) from Person p');
或者
Query query = em.createQuery('select new com.model.Report<com.model.Person, java.lang.Long>(p, size(p.dogs)) from Person p');
. 尝试这样做会给我以下异常:
org.hibernate.hql.ast.QuerySyntaxException: expecting OPEN, found '<' near line 1
这是否意味着,我想要的只是不支持?有没有好的选择?
NamedNativeQuery和resultClass几乎可以实现同样的事情,但这样我就不会将 Person 作为一个实体。
如果我改用对象,则无法转换返回的列表,这意味着我必须迭代 -> meh desu。
提前感谢您的帮助。