将SQL转换为HQL?

时间:2010-12-16 14:07:50

标签: sql hibernate hql

如何将以下SQL查询转换为HQL?

SELECT  count(sa.AID)
     FROM   A  sa 
  , B sal,C  m 
  WHERE sa.AID = sal.AID(+) and   sa.BID = m.BID and sa.AID ='0001' 

2 个答案:

答案 0 :(得分:0)

您需要在JAVA中转移每个table/into it's associated实体/类`,然后使用Hibernate ORM如下构建查询。

假设 -表sa的实体名称为saEntity,表B的实体名称为bEntity,表C的实体名称为cEntity。 -列AID的类名是AidClass,列BID的类名是BidClass

然后可以按以下方式编写Hibernate ORM查询(我喜欢在多行注释中格式化HQL查询,以使其更易于阅读和适应)。

@Query( "SELECT COUNT(sa.AidClass) "
      + "FROM saEntity sa, "
      + "     bEntity sal "
      + "     cEntity m"
      + "WHERE sa.AidClass = sal.AidClass"
      + "  AND sa.BidClass = m.BidClass "
      + "  AND sa.AidClass ='0001'")
public List <?> runMyQueryMethod();

答案 1 :(得分:-1)

尝试查看这个问题的答案。

HQL to SQL converter

或者这篇文章可能有所帮助..

https://forum.hibernate.org/viewtopic.php?t=972441

如果你展示了一些我可以帮助HQL的映射。你可以使用

Session.CreateSQLQuery而不是?