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

Hibernate @OneToMany melempar MySQLSyntaxErrorException:Anda memiliki kesalahan dalam sintaks SQL Anda

Anda tidak dapat memilih koleksi dalam proyeksi DTO seperti ini:

SELECT new com.tim.core.dto.client.MinimalContactDTO(c.id, c.version, c.name, c.title, c.email, c.createdDate, **c.phones**)

ResultSet seperti spreadsheet, bukan seperti grafik objek.

Yang perlu Anda lakukan adalah mengubah DTO Anda seperti ini:

public MinimalContactDTO(
    Long id, Long version, String name, String title, String email, 
    Date createdDate, ContactPhone phone) {
    ...
}

Sekarang, Anda hanya dapat melewati satu ponsel dalam satu waktu:

SELECT new com.tim.core.dto.client.MinimalContactDTO(
    c.id, c.version, c.name, c.title, c.email, c.createdDate, p)
from CONTACT c 
JOIN c.phones p
where 
( 
    c.localRecordStatus IS NULL OR 
    c.localRecordStatus IN (:openStatusList) )
) 

Kemudian, Anda dapat mengubah ResutSet seperti tabel menjadi grafik menggunakan Hibernate ResultTransformer .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysqldump lebih dari satu tabel?

  2. Dapatkan dan SET Variabel Koneksi Server Database dengan JDBC

  3. Cara terbaik untuk menguji apakah ada baris di tabel MySQL

  4. Ubah nama 'Database Collation' prosedur tersimpan MySQL

  5. Tanda diakritik Kroasia di MySQL db (utf-8)