Hibernate选择一个表的所有行(使用。*)连接多个表,并给出Exception [英] Hibernate selecting all rows of a table (using .* ) join with multiple tables, giving Exception
本文介绍了Hibernate选择一个表的所有行(使用。*)连接多个表,并给出Exception的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用Hibernate可以做到这一点吗?
$ b
select A.something,B.something, C.something,D.something,E. *
from A
A.id = B.id_fk
LEFT OUTER JOIN B B. b。= C.id_fk
LEFT OUTER JOIN D ON C.id = D.id_fk
LEFT OUTER JOIN E ON A.abc = E.abc;
这个查询在SQL中正常工作,但在Hibernate中给出如下的异常:
org.hibernate.hql.ast.QuerySyntaxException:期待IDENT,在第1行附近找到'*'
解决方案
你不需要*。 hibernate正在转向对象,*对于指向SQL中的列毫无意义。
SELECT E FROM E
这是HQL for SELECT * FROM E
甚至 FROM E的作品,当你调用session.createQuery()。
Is possible with Hibernate do this?
select A.something, B.something, C.something, D.something , E.*
from A
LEFT OUTER JOIN B on A.id = B.id_fk
LEFT OUTER JOIN C ON B.id = C.id_fk
LEFT OUTER JOIN D ON C.id = D.id_fk
LEFT OUTER JOIN E ON A.abc = E.abc;
This query works fine in SQL but gives below Exception in Hibernate:
org.hibernate.hql.ast.QuerySyntaxException: expecting IDENT, found '*' near line 1
解决方案
you don't need the "*". hibernate is turning objects , * is meaningless as its for pointing the columns in SQL. When you want the E , it turns the E object.
SELECT E FROM E
this is the HQL for SELECT * FROM E
even "FROM E" works , when you're calling session.createQuery() .
这篇关于Hibernate选择一个表的所有行(使用。*)连接多个表,并给出Exception的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文