## 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
- Không sử dụng các chữ cái viết hoa trong tên của
database
,schema
,tables
hoặccolumns
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")
^^^^^^^^^^ ^^^^^^^^^^^
- 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|
+----------+-----------+----------+-----------+---------+
- để khác biệt giữa Dto và 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