java—如何使用SpringJPA/hibernate实现与临时表的连接

wbgh16ku  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(812)

这是我的场景,我有3个实体/表,比如maintentity、entitya和entityb。它们的性质和关系如下。
mainentity[实体ID,实体名称,实体类型]
entitya[entityid,entityname,typeid]
entityb[typeid,entitytype,]
在sql中,可以实现如下输出。
选择mainentity.*from mainentity作为mainentity内部联接(选择a.entityid、a.entityname b.entitytype from entitya作为左联接entityb作为a.typeid=b.typeid上的b),选择temp on mainentity.entityid=temp.enityid和mainEntityName=temp.entityname和mainEntityId=temp.typeid;
有人能帮我使用criteriabuilder为上面的sql编写等效的hibernate代码吗。

ao218c7q

ao218c7q1#

hql与sql非常相似。一个很大的区别是它不支持from子句中的子查询,但是大多数情况下您不需要它。您的查询可以重写为以下内容:

SELECT mainEntity 
FROM MainEntity AS mainEnity 
JOIN EntityA AS A ON mainEnity.entityID = A.enityID AND mainEnity.entityName = A.entityName
JOIN EntityB AS B ON mainEnity .typeId = B.typeId

相关问题