使用 JPA 条件联接没有关系的表
我有两个没有模型关系的表:
包含列的表:comm
name
date
code
包含列的表:persondesc
code
description
两个表之间的关系是多对一(许多通信到一个人描述):
com.code = persondesc.code
这两个表是用注释映射的,但我没有声明关系。
我试图的是选择按 排序的表。comm
persondesc.description
我该如何做这个JPA和休眠?
我有两个没有模型关系的表:
包含列的表:comm
name
date
code
包含列的表:persondesc
code
description
两个表之间的关系是多对一(许多通信到一个人描述):
com.code = persondesc.code
这两个表是用注释映射的,但我没有声明关系。
我试图的是选择按 排序的表。comm
persondesc.description
我该如何做这个JPA和休眠?
因此,如果您的类没有“关系”,那么您可以执行如下查询:
SELECT a FROM A a
CROSS JOIN B b
WHERE a.someField = b.otherField
ORDER BY b.anotherField
这可以使用JPA标准来实现,例如
CriteriaBuilder cb = emf.getCriteriaBuilder();
CriteriaQuery<A> query = cb.createQuery(A.class);
Root<A> aRoot = query.from(A.class);
Root<B> bRoot = query.from(B.class);
aRoot.alias("a");
bRoot.alias("b");
query.select(aRoot)
.where(cb.equal(aRoot.get(A_.someField), bRoot.get(B_.otherField))
.orderBy(cb.asc(bRoot.get(B_.anotherField)));
...或者只是重新设计你的类,帮你的开发人员一个忙。