【发布时间】:2020-01-14 09:10:35
【问题描述】:
如何实现以下查询作为 JPA 条件查询: sql
SELECT
tab1.ID,
tab1.PROJECT_ID,
tab1.EMP_ID,
tab1.MONTH_ID,
tab1.MONTH,
tab2.projectName as ProjName,
tab3.empName as EmpName,
tab1.Table1
FROM
Table1 tab1,Table2 tab2,Table3 tab3
WHERE
Tab1.EMP_ID=tab3.ID AND tab1.PROJECT_ID=tab2.ID
I'm trying to make criteria query but I am unable to apply filters on
that according to my requirement
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery =
builder.createQuery(Object[].class);
Root<Table3> tab3 = criteriaQuery.from(Table3.class);
Root<Table1> tab1 = criteriaQuery.from(Table1.class);
Root<Table2> tab2 = criteriaQuery.from(Table2.class);
Path<Object> empPath = empRoot.get("id");
criteriaQuery.where(builder.equal(projectAllocationRoot.get("empId"),
empRoot.get("id")));
criteriaQuery.multiselect(projectAllocationRoot);
criteriaQuery.
Entity: JPA criteria query select from 3 tables based on id
Table 1
long id ;
@OneToMany
Tanle2 projectId ;
@OneToMany
Table3 empId;
JPA 条件查询根据 id 从 3 个表中选择 表 2 长身份证; 长 bpId ; 字符串项目名称;
JPA 条件查询根据 id 从 3 个表中选择 表3 长身份证; 字符串雇员姓名; 字符串联系人号码;
【问题讨论】:
-
你能分享你的实体吗?了解他们的关系类型?
-
我想加入没有映射关联的表
-
你能说出你的最终目标吗? IE。为什么要将它作为 Criteria 查询?
-
@konstantinTriger 如果您有任何其他替代方案,则无需仅使用 Criteria 查询,请建议
标签: hibernate jpa-2.0 hibernate-criteria