2017-03-13 62 views
0

我有一个包含一些属性的产品实体,我需要得到最接近的产品,以给定的产品取决于一些标准,标准是类别,光洁度和生产的公司。 我写此查询春数据仓库JPA ORDER BY条件

@Query("Select pr from Product pr ORDER BY (CASE WHEN (pr.category = :p.category) THEN 1 WHEN (pr.finish = :p.finish) THEN 2 WHEN (pr.productionCompany = :p.productionCompany) THEN 3 ELSE 4) LIMIT 5") 
List<Product> findRecommendedProducts(@Param("p")Product p); 

但是,这一直给我下面的异常

antlr.MismatchedTokenException: expecting "end", found ')' 

任何帮助表示赞赏。

回答

0

我认为你需要添加ELSE 4 END到您的查询。我认为这是在Oracle上运行?

+0

其实我使用MySQL,但错误已经一去不复返了,现在我有其他异常 验证失败的查询方法公共抽象的java.util.List融为一体。 –