2013-11-01 75 views
25

我试图通过ASC进行,以便与弹簧数据的JPA桌子上的应用程序,但它给了我一个错误:按日期排序ASC与Spring数据

Invalid derived query! No property asc found for type java.util.Calendar 

为什么?

List<Foo> findAllOrderByDateAsc(); 

@Query("SELECT * FROM foo ORDER BY date ASC") 
List<Foo> findAllOrderByDateAsc(); 
+0

刚一说明。您有JPA QL @Query(“SELECT * FROM foo ORDER BY date DESC”) List findAllOrderByDateAsc(); 名称显示“Asc”,但查询将其作为“DESC” – user1567291

+0

我编辑了我的帖子,谢谢 – MaximeF

回答

85

尝试添加“通过”与“所有”和“订单”像这样:

List<Foo> findAllByOrderByDateAsc(); 
+0

这个答案的诀窍是没有必要编写@Query,但只需通过正确的方式命名该方法Spring数据将生成查询正常 – OscarG

+0

优秀的工作,谢谢一堆。 –

+0

对我来说,这会将IllegalArgumentException更改为QueryUtils.toExpressionRecursively()引发的NullPointerException。我没有使用@Query。 – user1944491

8

我不认为你可以使用的findAll作为前缀。

关于查询,select *是无效的JPQL。它应该是

select foo from Foo foo order by foo.date desc 
+0

这并不解决OP的问题。 – 2013-11-01 19:05:41

+1

为什么它不解决问题?问题是查询无效,我告诉他什么是正确的查询。 –

1

date是SQL中的保留字。尝试改变表属性foo_date,例如和重写查询为SELECT * FROM foo ORDER BY foo_date DESC

+0

这不是SQL。这是JPQL。 –

+1

正确。我的错。 @MaximeF参见http://docs.spring.io/spring-data/jpa/docs/1.0.0.M1/reference/html/#jpa.query-methods.at-query – Bizmarck

+0

它不工作@Query(“SELECT f FROM foo f ORDER BY f.date DESC“) – MaximeF