2011-03-07 73 views
1

我得到HibernateQueryException,当我使用On子句与左外连接。ON子句与Hibernate查询接口

任何人都可以建议我是什么原因。

问候,

拉吉

+1

的原因是你犯了一个错误。请提供更多细节。 – SLaks 2011-03-07 13:22:57

+0

@Slaks:查询在任何数据库工具中都能正常执行,当我在休眠状态下使用相同查询时,查询失败 – rajputhch 2011-03-07 13:24:49

+0

哦,您有查询;我们可以看到它吗? – 2011-03-07 13:28:15

回答

5

HQL不支持... JOIN ... ON ...语法,可以JOIN只在实体之间(FROM Foo foo JOIN foo.bars bar)定义的关系。

如果您在任意条件下需要JOIN,则可以使用旧式表单FROM A a, B b WHERE a.x = b.y(尽管您无法以这种方式进行外连接)。否则必须使用原生SQL查询。

参见:

+0

原生SQl查询如何支持此操作? – rajputhch 2011-03-07 15:17:45

+1

好吧,从技术上说,使用hql 4.3,“on”实际上是支持的,但是以非标准的方式,你必须使用“with” - http://www.bmchild.com/2012/05/hibernate-with-子句HQL-等效of.html – chrismarx 2015-06-08 20:24:58