【发布时间】:2021-10-29 08:18:23
【问题描述】:
我有一个方法可以返回一个简单的entitymanager.find(id) 的员工,但现在我需要找到一个分配了工资的id 员工,(Employee 和 Salary 类是通过OneToMany映射),我应该使用entityManager.find()还是entityManager.createQuery()?
@Override
public Optional<Employee> findById(Long emptNo) {
try {
return Optional.ofNullable(this.entityManager.find(Employee.class, emptNo));
} catch (EmptyResultDataAccessException e) {
return Optional.empty();
}
}
这是我需要帮助的地方:
@Override
public Optional<Employee> findByIdWithSalary(Long empNo) {
this.entityManager.createQuery("select (e.empNo,s.salary,s.fromDate,s.toDate) as from employees e, salaries s where e.empNo=s.empNo");
try {
return Optional.ofNullable(this.entityManager.find(Employee.class, empNo));
} catch (EmptyResultDataAccessException e) {
return Optional.empty();
}
}
【问题讨论】:
-
你的意思是:工资 > 0 的员工?
标签: java spring spring-boot hibernate jpa