Chiến lược đặt tên của tôi ở chế độ ngủ đông là chiến lược mặc định: EJB3NamingStrategy. Vì vậy, tên trường và bảng nằm trong thư mục. Tôi chuyển nó sang ImprovedNamingStrategy để có snakecase.EJB3NamingStrategy vs ImprovedNamingStrategy Đặt tên khóa ngoài
Nhưng khóa ngoại của tôi không bao gồm tên khóa chính của thực thể được tham chiếu trong tên.
Ví dụ:
table1: id tên
Với EJB3NamingStrategy các lĩnh vực table2 sẽ là:
table2: id table1_id
nhưng với ImprovedNamingStrategy các lĩnh vực table2 sẽ : bảng2: id table1
Có cách nào để có _id với ImprovedNamingStrategy không. Tôi không hiểu tại sao hibernate lại hành xử khác nhau bởi vì phương thức logicalCollectionColumnName trong cả hai chiến lược đều giống nhau.
tham số nhận được trong logicalCollectionColumnName đã chứa cột_id nếu tôi sử dụng EJB3NamingStrategy nhưng nếu tôi sử dụng ImprovedNamingStrategy thì tham số sẽ không nhận được. Tôi không hiểu tại sao. Phương thức này được gọi từ một nơi khác trong mã. – Mike
Vâng viết của bạn, tôi đã không tìm đúng phương pháp. Phần id được nhận xét – Mike