JPA 条件 API:如何使用 IN 关键字并查询另一个谓词的结果?
Posted
技术标签:
【中文标题】JPA 条件 API:如何使用 IN 关键字并查询另一个谓词的结果?【英文标题】:JPA criteria API: How to use IN keyword and query the result for another predicate? 【发布时间】:2012-11-02 13:40:49 【问题描述】:抱歉标题不好,我真的不知道如何更好地表达它:
我有以下表结构:
Table A --> Table B <-- Table C (proceeds) --> Table D(prcoeeding_status)
-------- -------- ------- -------
aID bID cID dID
... .... created textValue
f_bID .... f_bID
f_dID
意思是A和C有一个外键指向B,C也有一个外键指向D
我有一个这样的谓词(根是表 A):
constraintCondition = (TableA.join("Table B key")
.joinList("Table C Key")
.join("Table D Key").get("value from table D"))
.in(someValues);
这很好用,给了我预期的结果。 现在我需要添加另一个约束,只选择表 C 中日期条目(即“创建”)位于 Startdate 和 Enddate 之间的条目。 我如何将另一个谓词链接到这个谓词,或者我需要如何修改这个谓词,以便获得预期的效果?
编辑:
我在这里得到了这个问题的答案:JPA 2 criteria API: How to select values from various joined tables without using Metamodel?
【问题讨论】:
也许这个链接应该对***.com/questions/5594309/…有帮助 我的问题与提供的链接中的问题不同:我有很多表需要加入,但是我必须针对不同表的谓词进行测试。如果我只是链接谓词测试表 C 的时间是否在正确值之间,然后检查表 D 中的值是否在正确值中,它也会给我结果表 C 中的时间正确,但错误表 D 中的值 【参考方案1】:请看这里,同样的问题,更好的描述和回答:
JPA 2 criteria API: How to select values from various joined tables without using Metamodel?
【讨论】:
以上是关于JPA 条件 API:如何使用 IN 关键字并查询另一个谓词的结果?的主要内容,如果未能解决你的问题,请参考以下文章