15

Hibernate可以做到这一点吗?

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;  

此查询在 SQL 中运行良好,但在 Hibernate 中出现以下异常:

org.hibernate.hql.ast.QuerySyntaxException: expecting IDENT, found '*' near line 1
4

2 回答 2

24

你不需要“*”。hibernate 正在转动对象,* 用于指向 SQL 中的列是没有意义的。当你想要 E 时,它会转动 E 对象。

从 E 中选择 E

这是 HQLSELECT * FROM E

当您调用 session.createQuery() 时,即使“FROM E”也有效。

于 2012-04-06T08:51:55.940 回答
0

HQL 中的查询有所不同 - SQL -

从 A 中选择 * ;

高品质——

从一个

SQL——

从 A 中选择 b,c,d

高品质——

从 A 中选择 b,c,d

org.hibernate.Query query = createQuery("select b FROM aaaa");
        query.setReadOnly(true);
        return (List<Vector<aaaa>>)query.list();

https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

于 2018-12-11T09:41:59.010 回答