PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PSQLException:Không tìm thấy tên cột clazz_ trong Tập kết quả này

Trong trường hợp @Inheritance(strategy = InheritanceType.JOINED) , khi bạn truy xuất dữ liệu mà không có nativeQuery=True trong kho lưu trữ JPA , Ngủ đông sẽ thực thi SQL như sau:

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

Từ SQL ở trên, bạn có thể thấy clazz sự chỉ rõ. Nếu bạn muốn ánh xạ ResultSet đối với phiên bản siêu cấp của bạn (PlaceEntity), bạn nên chỉ định clazz_ trong CHỌN của chính bạn.

Trong trường hợp của bạn, nó sẽ là:

@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. Trong môi trường nhiều máy chủ, nếu một trang web không hoạt động trong hơn 15 triệu, máy chủ sẽ mất kết nối với cơ sở dữ liệu PostgreSQL

  2. Postgres là cơ sở dữ liệu tuyệt vời nhất - Lý do số 1:Các nhà phát triển thích nó!

  3. Nhập .csv với cột dấu thời gian (dd.mm.yyyy hh.mm.ss) bằng psql \ copy

  4. Postgresql - Tạo cơ sở dữ liệu &bảng động

  5. plpgsql Lỗi cú pháp TẠO CHỨC NĂNG tại hoặc gần 'TẠO'