gpt4 book ai didi

java - 如何在构建谓词时加入,但没有 JPAQuery 实例

转载 作者:搜寻专家 更新时间:2023-11-01 00:51:31 24 4
gpt4 key购买 nike

在为实体书构建谓词时,我希望能够左连接类别 (ManyToMany) 以在类别上添加 AND 谓词。如果我有 JPAQuery 实例,我可以简单地实现它:

if (catId != null) {
jpaQuery.leftJoin(book.categories, category);
jpaQuery.where(category.id.eq(catId).or(category.parentCategory.id.eq(catId)));
}

但是在构建谓词时我还没有 JPAQuery。所以对于 Predicate 本身,我可以这样做:

booleanBuilder.and(category.id.eq(this.categoryId).or(category.parentCategory.id.eq(this.categoryId)));

但是对于 leftjoin 如何在没有 jpaQuery 实例的情况下进行?

最佳答案

您需要 Query 在 Querydsl 中声明左连接。如果这与 Spring Data 相关,他们可能会提出 API 级别的解决方案。

可以使用 book.categories.any() 代替类别,但它的序列化方式与 JPQL 不同,使用子查询而不是连接。

关于java - 如何在构建谓词时加入,但没有 JPAQuery 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13534313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com