Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Validasi gagal untuk kueri untuk metode JPQL

Anda telah memberi tahu Spring untuk memperlakukan kueri itu sebagai kueri asli. Jika tidak, ia akan mencoba memvalidasinya sesuai dengan spesifikasi JPA.

Coba:

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

Ingatlah bahwa tidak dapat menggunakan sintaks operator BARU dalam kasus ini dan Anda harus menangani hasil sebagai larik Object .

Alternatifnya

Jika Anda ingin menggunakan hasil pemetaan langsung ke kelas POJO Anda harus (dengan asumsi Anda menggunakan JPA 2.1+):

1) Tentukan pemetaan:

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

2) Tentukan kueri asli

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

3) Tentukan metode ini di CrudRepository tanpa @Query anotasi:

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. Bagaimana saya bisa mengatasi ketidakcocokan dengan sql_mode=only_full_group_by di laravel fasih?

  2. Prosedur tersimpan MySQL mengembalikan nilai

  3. Replikasi MySQL:Transaksi Salah dalam Replikasi Berbasis GTID

  4. Cara Mengganti Nama Tabel di MySQL

  5. 3 Cara Menemukan Baris yang Mengandung Huruf Kecil di MySQL