在Hibernate中,可以使用非实体类映射联接查询。请参考如何将数据库查询映射为Java对象?
<class name=... select="select A.field_a, B.field_b, ... from A, B, ...">
我该如何在JPA/Hibernate中实现同样的功能?
在Hibernate中,可以使用非实体类映射联接查询。请参考如何将数据库查询映射为Java对象?
<class name=... select="select A.field_a, B.field_b, ... from A, B, ...">
@NamedQuery( name = "myScalarQuery" query =
"select new org.stackoverflow.hibernate.QueryResultObject(A.field_a, B.field_b)
from A, B
where a.someUsefulProperty = b.someComparableProperty")
etc. (注意需要完整的类名)
然后您只需要拥有一个匹配构造函数的类即可。
public class QueryResultObject {
public QueryResultObject(TypeOfFieldA fieldA, TypeOfFieldB fieldB) {
//etc
}
}