【发布时间】:2014-03-16 14:42:30
【问题描述】:
我正在使用 spring-data-jpa 和 querydsl (3.2.3)
我有一个场景,我正在根据用户文件管理器/输入创建一组谓词。所有这些都来自BooleanExpression。
我的简化模型如下所示:
@Entity
public class Invoice {
@ManyToOne
private Supplier supplier;
}
@Entity
public class Supplier {
private String number;
}
@Entity
public class Company {
private String number;
private boolean active
}
现在,我正在努力解决这个问题:
SELECT * FROM Invoice WHERE invoice.supplier.number in (SELECT number from Company where active=true)
所以基本上我需要以CollectionExpression 之类的格式进行子查询,该格式将获取所有公司编号并将其设置为 in() 表达式。
我的 spring-data 存储库实现了 CustomQueryDslJpaRepository,它又扩展了 JpaRepository 和 QueryDslPredicateExecutor。
我希望这个问题的答案是直截了当的,但我对 querydsl 很陌生,到目前为止还没有找到解决方案。
【问题讨论】:
标签: java spring spring-data querydsl