เครื่องกำเนิดไฟฟ้าทั้งหมดใช้อินเตอร์เฟส org.hibernate.id.IdentifierGenerator นี่คืออินเทอร์เฟซที่เรียบง่ายมาก แอปพลิเคชันบางตัวสามารถเลือกที่จะให้การใช้งานเฉพาะของตนเองได้อย่างไรก็ตาม Hibernate มีการใช้งานในตัวที่หลากหลาย ชื่อทางลัดสำหรับเครื่องกำเนิดไฟฟ้าในตัวมีดังนี้:
เพิ่มขึ้น
สร้างตัวระบุประเภท long สั้นหรือ int ที่ไม่ซ้ำกันเฉพาะเมื่อไม่มีกระบวนการอื่นแทรกข้อมูลลงในตารางเดียวกัน ห้ามใช้ในคลัสเตอร์
เอกลักษณ์
รองรับคอลัมน์ข้อมูลประจำตัวใน DB2, MySQL, MS SQL Server, Sybase และ HypersonicSQL ตัวระบุที่ส่งคืนเป็นประเภท long สั้นหรือ int
ลำดับ
ใช้ลำดับใน DB2, PostgreSQL, Oracle, SAP DB, McKoi หรือเครื่องกำเนิดไฟฟ้าใน Interbase ตัวระบุที่ส่งคืนเป็นประเภท long สั้นหรือ int
ไฮโล
ใช้อัลกอริทึม hi / lo เพื่อสร้างตัวระบุประเภท long, short หรือ int ได้อย่างมีประสิทธิภาพโดยกำหนดตารางและคอลัมน์ (โดยค่าเริ่มต้น hibernate_unique_key และ next_hi ตามลำดับ) เป็นแหล่งที่มาของค่า hi อัลกอริทึม hi / lo สร้างตัวระบุที่ไม่ซ้ำกันสำหรับฐานข้อมูลเฉพาะเท่านั้น
Seqhilo
ใช้อัลกอริทึม hi / lo เพื่อสร้างตัวระบุประเภท long, short หรือ int อย่างมีประสิทธิภาพโดยกำหนดลำดับฐานข้อมูลที่มีชื่อ
uuid
ใช้อัลกอริทึม UUID 128 บิตเพื่อสร้างตัวระบุของสตริงประเภทที่ไม่ซ้ำกันภายในเครือข่าย (ใช้ที่อยู่ IP) UUID ถูกเข้ารหัสเป็นสตริงที่มีความยาว 32 หลักฐานสิบหก
แนวทาง
ใช้สตริง GUID ที่สร้างจากฐานข้อมูลบน MS SQL Server และ MySQL
พื้นเมือง
เลือกตัวตนลำดับหรือไฮโลขึ้นอยู่กับความสามารถของฐานข้อมูลพื้นฐาน
ที่ได้รับมอบหมาย
ให้แอปพลิเคชันกำหนดตัวระบุให้กับวัตถุก่อนที่จะเรียกบันทึก () นี่เป็นกลยุทธ์เริ่มต้นหากไม่มีการระบุองค์ประกอบ
เลือก
ดึงคีย์หลักที่กำหนดโดยทริกเกอร์ฐานข้อมูลโดยการเลือกแถวตามคีย์ที่ไม่ซ้ำกันและดึงค่าคีย์หลัก
ต่างประเทศ
ใช้ตัวระบุของวัตถุอื่นที่เกี่ยวข้อง โดยปกติจะใช้ร่วมกับการเชื่อมโยงคีย์หลัก
ลำดับเอกลักษณ์
กลยุทธ์การสร้างลำดับแบบพิเศษที่ใช้ลำดับฐานข้อมูลสำหรับการสร้างค่าจริง แต่รวมสิ่งนี้เข้ากับ JDBC3 getGeneratedKeys เพื่อส่งคืนค่าตัวระบุที่สร้างขึ้นเป็นส่วนหนึ่งของการดำเนินการคำสั่งแทรก กลยุทธ์นี้รองรับเฉพาะไดรเวอร์ Oracle 10g ที่กำหนดเป้าหมายสำหรับ JDK 1.4 ข้อคิดเห็นเกี่ยวกับคำสั่งแทรกเหล่านี้ถูกปิดใช้งานเนื่องจากข้อบกพร่องในไดรเวอร์ Oracle