[英]JPA 2 XML Mapping of Embedded so that it worked with Hibernate Meta model generator
[英]Hibernate JPA Meta Model -- reference nested properties?
假设一个实体模型,其中Employee
有一个id
的Supervisor
。 使用hibernate-jpamodelgen
为实体生成元模型,如何查询嵌套字段?
例如,“使用JpaSpecificationExecutor
获取主管 ID 为 4 的所有员工”:
Page<Employee> getEmployeesBySupervisorId(int id) {
return findAll((root, query, criteriaBuilder) -> {
return criteriaBuilder.equal(root.get(Employee_.supervisor.id), id);
});
}
需要注意的是Employee_
是模型元类Employee
(和由Hibernate生成)。
此代码将产生错误,因为在SingularAttribute<Employee, Supervisor>
类型上找不到id
符号。 我明白了,但似乎这些应该以某种方式可以链接。 我找不到如何干净地做到这一点的好例子。
为了导航到相关实体,您必须使用From#join()
join 方法,该方法与 MetaModel 配合良好:
CriteriaQuery<Employee> cq = criteriaBuilder.createQuery(Employee.class);
Root<Employee> from = cq.from(Employee.class);
Predicate p = criteriaBuilder.equal(from.join(Employee_.supervisor).get(Supervisor_.id), id);
也可以看看
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.