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

org.postgresql.util.PSQLException:LỖI:cột user0_.id không tồn tại - Hibernate

## Giải pháp

Trong PostgreSQL bạn phải chỉ định tên của lược đồ như sau:

@Table(name="table_name", schema = "myapp")
                          ^^^^^^^^^^^^^^^^

## Truyện dài

bạn gặp lỗi này:

org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist

vì khi bạn tạo cơ sở dữ liệu trong PostgreSQL , nó tạo ra một giản đồ mặc định có tên là công khai , vì vậy khi bạn không chỉ định tên trong Entity thì Hibernate sẽ tự động kiểm tra trong công khai lược đồ.

## Các phương pháp hay

  1. Không sử dụng các chữ cái viết hoa trong tên của database , schema , tables hoặc columns trong PostgreSQL . Nếu không, bạn nên loại bỏ các tên này bằng dấu ngoặc kép và điều này có thể gây ra lỗi Cú pháp, vì vậy thay vào đó bạn có thể sử dụng:

@Table(name="table_name", schema = "schema_name")
             ^^^^^^^^^^             ^^^^^^^^^^^
  1. từ khoá USER là từ khóa dành riêng trong PostgreSQL hãy xem

+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003  | SQL:1999  | SQL-92  |
+----------+-----------+----------+-----------+---------+
|  ....        ....       ....       ....       ....    |
+----------+-----------+----------+-----------+---------+
| USER     |  reserved |reserved  | reserved  | reserved|
+----------+-----------+----------+-----------+---------+
  1. để khác biệt giữa Dto Thực thể thực hành tốt là sử dụng Đối tượng ở cuối tên Đối tượng của bạn, ví dụ:UserEntity


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Shift (cập nhật) các giá trị cột duy nhất trong PostgreSQL

  2. Không thể CHỌN từ mệnh đề CẬP NHẬT TRẢ LẠI trong postgres

  3. Tìm các đối tượng phụ thuộc cho một bảng hoặc dạng xem

  4. Django cùng nhau duy nhất mối quan hệ với lĩnh vực và nhiều người về bản thân

  5. Tham gia 2 bộ dựa trên thứ tự mặc định