之前在个人项目中用到了 jpa 来作为持久层,优点很明显,前期基础功能的开发很快,api 也简单易懂。
在涉及到一些多表的关联查询时,目前是通过 JpaSpecificationExecutor 接口提供的功能来实现,代价是让实体做了多层嵌套
//例如部门和员工,一对多的关系
public class Department {
}
public class Employee {
...
@ManyToOne
private Department department;
...
}
这样嵌套之后,问题也很明显。比如要新增一条数据
public void addEmployee(){
Employee employee = new Employee();
Department department = new Department();
department.setId(666);
employee.setDepartment(department);
save(employee);
}
明显代码不够美观,还存在很多空指针的隐患。
想请教一下针对 jpa 的多表查询,有没有更好的实现方式?要求是,操作能完全面向对象,代码尽量简洁。
希望能得到一些建议,谢谢。