Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPA条件查询根据id从3个表中选择_Hibernate_Jpa 2.0_Hibernate Criteria - Fatal编程技术网

Hibernate JPA条件查询根据id从3个表中选择

Hibernate JPA条件查询根据id从3个表中选择,hibernate,jpa-2.0,hibernate-criteria,Hibernate,Jpa 2.0,Hibernate Criteria,如何实现以下作为JPA条件查询的查询: sql JPA条件查询根据id从3个表中选择 表2 长id; 长bpId; 字符串projectName JPA条件查询根据id从3个表中选择 表3 长id; 字符串名称; 字符串contactNum 您可以使用实现任何SQL,例如: FluentQuery query=FluentJPA.SQL((表1), 表2 t2, 表3)->{ 选择(t1.getId(),t1.getProjectId(),t1.getEmpId(), 别名(t2.getPr

如何实现以下作为JPA条件查询的查询: sql


JPA条件查询根据id从3个表中选择 表2 长id; 长bpId; 字符串projectName


JPA条件查询根据id从3个表中选择 表3 长id; 字符串名称;
字符串contactNum

您可以使用实现任何SQL,例如:

FluentQuery query=FluentJPA.SQL((表1),
表2 t2,
表3)->{
选择(t1.getId(),t1.getProjectId(),t1.getEmpId(),
别名(t2.getProjectName(),MultiTab::getProjectName),t3.getEmpName();
从(t1,t2,t3);
其中(t1.getEmpId()==t3.getId()&&t1.getProjectId()==t2.getId());
});
createQuery(em,MultiTab.class).getResultList();
生成以下SQL:

SELECT t0.id, t0.project_id, t0.emp_id, t1.projectName AS projName, t2.empName 
FROM tab1 t0, tab2 t1, tab3 t2 
WHERE ((t0.emp_id = t2.id) AND (t0.project_id = t1.id))
声明的投影类:

@Tuple
@数据//龙目
公共类多任务{
长id;
长投射;
长胚;
@列(name=“projName”)
字符串projectName;
@列(name=“empName”)
字符串名称;
}

您可以共享您的实体吗?要了解他们的关系类型?我想加入没有映射关联的表。您能告诉我您的最终目标吗?例如,为什么要将其作为条件查询?@konstantinTriger如果您有其他选择,则无需仅使用条件查询。请建议谢谢您的建议,但我们无法在我们的项目中使用FluentJPA。如果您还有其他选择,请提前告诉我谢谢。@GauravJeswani我建立了实体之间的关系
Entity: JPA criteria query select from 3 tables based on id

 Table 1 
 long id ;
 @OneToMany
 Tanle2 projectId ; 
 @OneToMany   
 Table3 empId; 
SELECT t0.id, t0.project_id, t0.emp_id, t1.projectName AS projName, t2.empName 
FROM tab1 t0, tab2 t1, tab3 t2 
WHERE ((t0.emp_id = t2.id) AND (t0.project_id = t1.id))