如果我没有理解好了,你想加入
ScheduleRequest与
User和适用
in条款的
userName实体的财产
User。
我需要在该架构上进行一些工作。但是您可以尝试使用此技巧,该技巧比您发布的代码更具可读性,并且避免使用该
Join部分(因为它处理
Join了Criteria
Query之外的逻辑)。
List<String> myList = new ArrayList<String> ();for (User u : usersList) { myList.add(u.getUsername());}expression<String> exp = scheduleRequest.get("createdBy");Predicate predicate = exp.in(myList);criteria.where(predicate);为了编写更多类型安全的代码,您还可以通过替换以下行来使用元模型:
expression<String> exp = scheduleRequest.get("createdBy");有了这个:
expression<String> exp = scheduleRequest.get(ScheduleRequest_.createdBy);
如果可行,则可以尝试将
Join逻辑添加到中
Criteria Query。但是现在我无法对其进行测试,因此我更愿意看看其他人是否想要尝试。



