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
将sql转换为hql-hibernate_Hibernate - Fatal编程技术网

将sql转换为hql-hibernate

将sql转换为hql-hibernate,hibernate,Hibernate,我有这两个sql脚本,我需要执行一些问题 hql中的翻译,用于来自JPA的查询: SELECT f.idprovider, pe.name from provider f inner join person pe on(f.idperson = pe.idperson) inner join product_provider pf on(f.idprovider = pf.idprovider) inner join product p on(pf.idproduct = p.idprodu

我有这两个sql脚本,我需要执行一些问题 hql中的翻译,用于来自JPA的查询:

SELECT f.idprovider, pe.name from provider f
inner join person pe
on(f.idperson = pe.idperson) 
inner join product_provider pf
on(f.idprovider = pf.idprovider) 
inner join product p
on(pf.idproduct = p.idproduct)
inner join item i
on(p.idproduct = i.idproduct)
where i.iditem = 1



SELECT f.idprovider, pe.name, pe.cnpjf from product_provider pf
inner join provider f  
on(pf.idprovider = f.idprovider)
inner join coliseusys.person pe
on(f.idperson = pe.idperson)
inner join product p
on(pf.idproduct = p.idproduct)
where p.idproduct = (select p2.idproduct from item i inner join product p2
on(i.idproduct = p2.idproduct) where i.iditem = 1)
这些SQL也做同样的事情,我已经尝试了很多,从任何一个SQL中获取hql,但没有结果。 hibernate中的映射是正常的


有什么想法吗?

翻译很快:

select f.id, pe.name from Provider f
inner join f.person pe
inner join f.products p
inner join p.items i
where i.id = :itemId
这是假设

  • 提供程序与个人有toOne关联
  • 提供程序使用联接表product\u提供程序与产品有许多关联
  • 产品与商品有一个单一的关联
如果不是这样,那么请描述您的映射,因为在不知道实体的情况下执行HQL是不可能的。这就像在不知道表的情况下执行SQL一样


你应该读书。它有很多HQL查询的例子,并详细解释了它们是如何工作的。

好的,伙计,谢谢你的关注。通过在产品中添加一个引用,该问题得以解决。对不起,我的英语不是很好