PostgreSQL đang tuân theo tiêu chuẩn SQL và trong trường hợp đó, điều đó có nghĩa là các số nhận dạng (tên bảng, tên cột, v.v.) buộc phải thành chữ thường, ngoại trừ khi chúng được trích dẫn. Vì vậy, khi bạn tạo một bảng như thế này:
CREATE TABLE APP_USER ...
bạn thực sự nhận được một bảng app_user
. Dường như bạn đã làm:
CREATE TABLE "APP_USER" ...
và sau đó bạn nhận được một bảng "APP_USER"
.
Trong Spring, bạn chỉ định một chuỗi thông thường cho tên bảng, bằng chữ in hoa, nhưng chuỗi đó được ghép vào một truy vấn tới máy chủ PostgreSQL mà không có dấu ngoặc kép. Bạn có thể kiểm tra điều này bằng cách đọc các tệp nhật ký PostgreSQL:nó sẽ hiển thị truy vấn mà Spring đã tạo, theo sau là lỗi ở đầu thư của bạn.
Vì bạn có rất ít quyền kiểm soát cách Spring xây dựng truy vấn từ các thực thể, nên tốt hơn hết bạn nên sử dụng các mã định danh chữ thường theo tiêu chuẩn SQL.