如何使用 BooleanBuilder (QueryDSL) 为可选的 OnetoOne JPA/Hibernate 关系建模谓词?
Posted
技术标签:
【中文标题】如何使用 BooleanBuilder (QueryDSL) 为可选的 OnetoOne JPA/Hibernate 关系建模谓词?【英文标题】:How to model a Predicate w/ BooleanBuilder (QueryDSL) an optional OnetoOne JPA/Hibernate relationship? 【发布时间】:2021-11-22 16:36:01 【问题描述】:我正在尝试为以下实体关系构建布尔谓词:
有一张员工表,其中一些员工可能是经理。
Employee.java:
private int empId;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="EMPID", referencedColumnName = "MANAGER_EMPID", insertable = false, updatable = false)
@NotFound(action= NotFoundAction.IGNORE) //Not everyone is a manager
private Manager manager;
那么我只想返回那些是经理的员工。
我已经尝试过:
BooleanBuilder builder = new BooleanBuilder();
QEmployee qEmployee = QEmployee.employee;
builder.and(qEmployee.manager.isNotNull());
// as well as:
// builder.and(qEmployee.manager.managerId.isNotNull());
两者都不起作用,因为这两种尝试最终都不会修改正在使用的 JPA/Hibernate 查询。
我如何使用 QuerySQL 和 BooleanBuilder 只返回那些是经理的员工?
【问题讨论】:
【参考方案1】:希望这能让您有一个清晰的认识。看这里https://www.baeldung.com/querydsl-with-jpa-tutorial
【讨论】:
基本 Querydsl 的良好链接,但不包括 Predicates/BooleanBuilder。以上是关于如何使用 BooleanBuilder (QueryDSL) 为可选的 OnetoOne JPA/Hibernate 关系建模谓词?的主要内容,如果未能解决你的问题,请参考以下文章
csharp Crear grid sin quer en Json formas
java.sql.SQLException:目标:commerce.0.primary:vttablet:rpc 错误:代码 = InvalidArgument desc = 未知系统变量 'quer