1

次のクエリがあります(jpa 2.0を使用):

String query = "
SELECT p.id, p.name 
FROM package p
ORDER BY (p.id = :idPackage) DESC, (p.mPrice+p.vPrice) DESC 
LIMIT 10 ";

query.setParameter("idPackage", idPackage);
query.getResultList();

ここで、packageには次の属性があります。

Package
 - id
 - name
 - mPrice
 - vPrice
 - duration

JPAクエリで実行しようとすると、ORDERBY句の「=」演算子について文句を言います。それを回避する方法はありますか?

これは私が得る例外です:

org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected AST node:

4

2 に答える 2

1

order byJPA クエリの句で「=」を使用することはできません。本当に必要な場合は、createNativeQuery代わりにを使用できますcreateQuery

于 2012-08-06T09:25:04.230 に答える
0

=比較演算子であるを使用する必要があります。

SELECT p.id, p.name 
FROM package p
ORDER BY (p.id = idPackage) DESC, (p.mPrice+p.vPrice) DESC 
LIMIT 10;

編集:試してみてください:

String query = "
SELECT p.id, p.name 
FROM package p
ORDER BY (p.id = idPackage) DESC, (p.mPrice+p.vPrice) DESC 
LIMIT 10 ";
于 2012-08-06T09:15:08.790 に答える