Hibernate选择一个表的所有行(使用。*)连接多个表,并给出Exception [英] Hibernate selecting all rows of a table (using .* ) join with multiple tables, giving Exception

查看:97
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆