子句中的 Java 谓词?

问题描述

我有以下查询

select distinct * from folder_persons
where folder_id = 68652
AND person_id in 
(select person_id from submissions where submissions.person_id = folder_persons.person_id AND submissions.date_applied >= folder_persons.created_date);

我可以在 Java find 中将此作为本机查询编写,但我想使用谓词来编写它,我该怎么做?

以下是我目前所拥有的:

//test data for list
Submission submission = new Submission();
submission.setPersonId(123);

List<Submission> submissions = new ArrayList<>();
submissions.add(submission);

try {

CriteriaBuilder builder = entityManager.getCriteriaBuilder();
Root<FolderPersons> from = query.from(FolderPersons.class);
                
//todo - how to create predicate for lines below?
Expression<String> inExpression = from.get();
Predicate inPredicate = inExpression.in(submissions);
    
CriteriaQuery<FolderPersons> selectQuery = query.select(from)
.where(builder.and(builder.equal(from.get(FOLDER_ID),folderId),inPredicate));
    
return entityManager.createquery(selectQuery).getResultList();

}catch...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)