1

このクエリを HQL で記述するにはどうすればよいですか?

SELECT CASE WHEN data1 > data2 THEN data1 ELSE data2 END AS data, STAMP FROM 
(SELECT STAMP, max(mc.data1) as data1, max(mc.data2) as data2 FROM 
transaction_history mc LEFT JOIN orderdetails gc on mc.id = gc.id where 
gc.order_name in ('xxx','yyy') AND time >= 135689 AND time <= 137692) AS TBL

上記のクエリを HQL で複製しようとすると、次のようになりました。

org.hibernate.hql.ast.QuerySyntaxException exception saying unexpected token "(".
4

1 に答える 1

0

切り離された基準を使用し、相関サブクエリを使用してメインの基準と結合し、エンティティのフィールドで式を使用してこれを実現してください。Hibernate には、あなたが行ったようなインライン クエリのサポートがありません。

于 2012-09-26T22:15:08.653 に答える