【发布时间】: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 只返回那些是经理的员工?
【问题讨论】: