【发布时间】:2016-01-13 22:03:52
【问题描述】:
我整天都在战斗,我想不通。我是 JPA 初学者,所以现在 Criteria API 对我来说是一场噩梦。问题:
我有 3 个实体:Policy、Customer、Insurer。保单引用了客户和保险公司(此处急切获取)。客户有保单清单,Insurer 也有(这里是懒惰的获取)。
我正在尝试以下述方式 (SQL) 查找所有策略:
SELECT * FROM POLICY as p WHERE
p.CUSTOMER_ID IN (SELECT ID FROM CUSTOMER as c WHERE [customerPredicates])
AND
p.INSURER_ID IN (SELECT ID FROM INSURER as i WHERE [insurerPredicates])
AND
[policyPredicates]
其中 CUSTOMER_ID / INSURER_ID 是从 Policy 中的 @ManyToOne 关系生成的 JoinColumns。
customerPredicates / insurancePredicates / policyPredicates 是谓词列表(根据给定搜索条件准备的“where”条件)。
如何在 Criteria API 中实现这一点?创建此类查询的规则/良好做法是什么?
【问题讨论】:
标签: java hibernate jpa h2 criteria-api