Nếu bạn muốn để sử dụng trình tự, bạn chắc chắn nên sử dụng một trong các sequence
hoặc seqhilo
nếu bạn muốn một trình tạo thuật toán hi / lo. Vấn đề là "không hoạt động gì cả" hoàn toàn không giúp hiểu được vấn đề bạn phải đối mặt.
Đề phòng trường hợp, đây là đoạn mã cho sequence
máy phát điện:
<id name="id" type="long" column="person_id">
<generator class="sequence">
<param name="sequence">person_id_sequence</param>
</generator>
</id>
Và đối với seqhilo
máy phát điện:
<id name="id" type="long" column="cat_id">
<generator class="seqhilo">
<param name="sequence">hi_value</param>
<param name="max_lo">100</param>
</generator>
</id>
Nếu bạn muốn điều tra lý do tại sao nó "hoàn toàn không hoạt động", tôi khuyên bạn nên bật ghi nhật ký SQL được tạo để xem điều gì đang xảy ra.
Cũng lưu ý rằng PostgreSQL không hỗ trợ identity
trình tạo (xem HB-875
và HHH-1675
) khi sử dụng cột SERIAL hoặc BIGSERIAL.
Tài liệu tham khảo
- Hướng dẫn Tham khảo Chính về Hibernate