Mysql
 sql >> база данни >  >> RDS >> Mysql

Неуспешна проверка на заявката за метод JPQL

Трябва да кажете на Spring да третира тази заявка като собствена. В противен случай ще се опита да го потвърди според спецификацията на JPA.

Опитайте:

@Query(value = "SELECT ...", nativeQuery = true)
public List<Object[]> transactions();

Имайте предвид, че в този случай не можете да използвате синтаксиса на оператора NEW и ще трябва да се справите с резултата като масив от Object .

Алтернативно

Ако искате да използвате картографиране на резултатите директно към POJO клас, ще трябва (ако приемем, че използвате JPA 2.1+):

1) Определете съпоставянето:

@SqlResultSetMapping(
    name="transactionsMapping",
    classes={
        @ConstructorResult(
            targetClass=ConsolidateResDB.class,
            columns={
                @ColumnResult(name="transdate"),
                @ColumnResult(name="orderreqid")
                // further mappings ...
            }
        )
    }
)

2) Дефиниране на собствена заявка

@NamedNativeQuery(name="transactions"
    , query="SELECT DATE_FORMAT(ts, '%d-%m-%Y') AS transdate, IFNULL(COUNT(orderreqid),0) ... ")

3) Дефинирайте този метод в CrudRepository без @Query анотация:

public List<ConsolidateResDB> transactions();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL MAX_JOIN_SIZE грешки

  2. Как да добавя AUTO_INCREMENT към съществуваща колона?

  3. Glassfish Admin Console хвърля java.lang.IllegalStateException при създаване на JDBC пул

  4. Дата на актуализиране + една година в mysql

  5. Използване на прост доставчик на членство с mysql