sql >> Databasteknik >  >> RDS >> Mysql

Validering misslyckades för fråga för metoden JPQL

Du måste säga till Spring att behandla den frågan som infödd. Annars kommer den att försöka validera den enligt JPA-specifikationen.

Försök:

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

Tänk på att du inte kan använda den NYA operatorsyntaxen i det här fallet och du måste hantera resultatet som en array av Object .

Alternativt

Om du vill använda mappa resultaten direkt till en POJO-klass måste du (förutsatt att du använder JPA 2.1+):

1) Definiera mappningen:

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

2) Definiera en inbyggd fråga

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

3) Definiera denna metod i CrudRepository utan @Query anteckning:

public List<ConsolidateResDB> transactions();


  1. SKAPA TABELL OM INTE FINNS motsvarande i SQL Server

  2. Varför behöver vi meddelandeförmedlare som RabbitMQ över en databas som PostgreSQL?

  3. Hur man tyst installerar Postgresql i Ubuntu via. Dockerfil?

  4. Uppdatera formuläret med Ajax, PHP, MYSQL