Я пытаюсь отсортировать набор результатов с помощью оператора SQL Order, используя JPA, для типа данных столбца datetime с этой строкой, в базе данных Mysql:
Query query = em.createQuery("SELECT e FROM Events e Order by e.EventDateTime;");
Используя метод createQuery, java возвращаетошибка:
SEVERE: Local Exception Stack:
Exception [EclipseLink-8030] (Eclipse Persistence Services - 2.3.0.v20110604-r9504):
org.eclipse.persistence.exceptions.JPQLException
Exception Description: Error compiling the query [Events.findByGameId: SELECT e FROM Events e WHERE e.gameId =
:gameId ORDER BY e.EventDateTime DESC], line 1, column 59: unknown state or association field [EventDateTime] of class [com.jogogestao.entity.Events].
at org.eclipse.persistence.exceptions.JPQLException.unknownAttribute(JPQLException.java:457)
at org.eclipse.persistence.internal.jpa.parsing.DotNode.validate(DotNode.java:88)
at org.eclipse.persistence.internal.jpa.parsing.OrderByItemNode.validate(OrderByItemNode.java:52)
at org.eclipse.persistence.internal.jpa.parsing.OrderByNode.validate(OrderByNode.java:61)
at org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:210)
Я пробовал сортировать по целочисленному типу primary и все работает нормально ... но это, конечно, не то, что я хочу.Используя createNativeQuery, оператор выполняется нормально ...
Query query = em.createNativeQuery("SELECT * FROM Events Order by EventDateTime;");
Единственная проблема состоит в том, что возвращаемый объект не является объектом типа Events (из сущности), и я не могу преобразовать в этот тип.
Может быть, проблема в том, что JPA не поддерживает сортировку по полям даты и времени?
Как обойти это?
Я использую Netbeans 7.0.1, Glassfish 3.1.1,MySql 5.5.19 Сервер совместной работы (GPL) и mysql-connector-java-5.1.15-bin.jar.
Спасибо!