Bạn phải nhớ rằng Hibernate là một lớp bền vững và cần có khả năng theo dõi vị trí của một đối tượng trong cơ sở dữ liệu. Vì vậy, khi thực hiện chèn, nó thực sự sẽ cần truy vấn bộ đếm tăng tự động để xem ID tiếp theo nên là gì. Sau đó, nó chèn ID vào đối tượng và chèn đối tượng vào cơ sở dữ liệu. Vì vậy, đối với hibernate để thực hiện trong insert, nó sử dụng cần phải thực hiện một lựa chọn trước (trừ khi bạn đang sử dụng một số loại GUID do ứng dụng tạo ra). Khi sử dụng tăng tự động mySQL, hãy sử dụng trình tạo "danh tính".
Giải thích về các máy phát điện khác nhau:
http://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml
Đoạn mã XML ngủ đông:
<id name="id" type="long" unsaved-value="null" >
<column name="uid" not-null="true"/>
<generator class="identity"/>
</id>