【发布时间】:2020-10-30 17:14:27
【问题描述】:
如何在 CriteriaQuery 中编写此 SQL 连接?实体之间没有关系。
from
Table_A a
left join Table_B b on b.B_id = a.B_id
left join Table_C c on c.C_id = a.column_x
left join Table_C d on d.C_id = a.column_y
left join Table_K k on k.K_id = a.column_z
left join Table_F f on f.F_id = a.column_t
left join Table_V v on v.V_id = a.column_t
and v.col_s <= b.col_w
and v.col_g >= b.col_w
类似这样的:
CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
CriteriaQuery<A> criteriaQuery = criteriaBuilder.createQuery(getClazz());
Root<A> root = criteriaQuery.from(getClazz());
Join<B, A> join = root.join(B_.ID)
.join(C_.ID);
CriteriaQuery<A> query = criteriaQuery.select(join);
但我无法确定应该匹配哪一列。
.join(C_.ID == A_.X)
.join(K_.ID == A_.Z)
.join(V_.ID == A_.t &&
V_.S <= B_.W &&
V_.G >= B_.W
)
【问题讨论】:
标签: jpa criteria criteria-api