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を選択

これはのHQLですSELECT * FROM E

session.createQuery()を呼び出すと、「FROME」でも機能します。

于 2012-04-06T08:51:55.940 に答える
0

HQLのクエリは異なります-SQL-

Aから*を選択します;

HQL-

から

SQL-

Aからb、c、dを選択します

HQL-

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 に答える