PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PSQLException:Nama kolom clazz_ tidak ditemukan di ResultSet ini

Dalam kasus @Inheritance(strategy = InheritanceType.JOINED) , saat Anda mengambil data tanpa nativeQuery=True di repositori JPA , Hibernasi akan mengeksekusi SQL seperti berikut:

SELECT
table0_.id as id1_1_,
table0_.column2 as column2_2_1_,
... (main_table cols)
table0_1_.column1 as column1_1_0_,
... (table1 to N-1 cols)
table0_N_.column1 as column1_1_9_,
... (tableN-th cols)
CASE WHEN table0_1_.id is not null then 1
    ... (table1 to N-1 cols)
    WHEN table0_N_.id is not null then N
    WHEN table0_.id is not null then 0
    END as clazz_
FROM table table0_
left outer join table1 table0_1_ on table0_.id=table0_1_.id
... (other tables join)
left outer join table2 table0_N_ on table0_.id=table0_N_.id

Dari SQL di atas Anda dapat melihat clazz spesifikasi. Jika Anda ingin memetakan ResultSet ke instance super Anda (PlaceEntity), Anda harus menentukan clazz_ kolom di PILIH sendiri.

Dalam kasus Anda, ini akan menjadi:

@Query(value = "" +
            "SELECT *, 0 AS clazz_ " +
            "FROM place " +
            "WHERE earth_distance( " +
            "   ll_to_earth(place.latitude, place.longitude), " +
            "   ll_to_earth(:latitude, :longitude) " + 
            ") < :radius",
            nativeQuery = true)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara Seq Scan dan Bitmap heap scan di postgres?

  2. PDO dapatkan pecahan detik dari Postgres

  3. Pengaturan LC_CTYPE yang dipilih memerlukan penyandian LATIN1

  4. Ubah karakter Unicode yang lolos kembali ke karakter sebenarnya di PostgreSQL

  5. Django:Ubah TimeField ke DateTimeField di models.py