Tất cả các trình tạo đều triển khai giao diện org.hibernate.id.IdentifierGenerator. Đây là một giao diện rất đơn giản. Một số ứng dụng có thể chọn cung cấp các triển khai chuyên biệt của riêng họ, tuy nhiên, Hibernate cung cấp một loạt các triển khai tích hợp sẵn. Các tên tắt cho các trình tạo tích hợp như sau:
tăng
tạo các mã định danh kiểu long, short hoặc int là duy nhất khi không có quy trình nào khác đang chèn dữ liệu vào cùng một bảng. Không sử dụng trong một cụm.
danh tính
hỗ trợ các cột nhận dạng trong DB2, MySQL, MS SQL Server, Sybase và HypersonicSQL. Định danh trả về có kiểu long, short hoặc int.
sự nối tiếp
sử dụng một trình tự trong DB2, PostgreSQL, Oracle, SAP DB, McKoi hoặc một trình tạo trong Interbase. Số nhận dạng được trả về thuộc loại long, short hoặc int
hilo
sử dụng thuật toán hi / lo để tạo hiệu quả các số nhận dạng kiểu long, short hoặc int, cho trước một bảng và cột (theo mặc định là hibernate_unique_key và next_hi tương ứng) làm nguồn giá trị hi. Thuật toán hi / lo tạo ra các số nhận dạng chỉ duy nhất cho một cơ sở dữ liệu cụ thể.
seqhilo
sử dụng thuật toán hi / lo để tạo hiệu quả các số nhận dạng kiểu long, short hoặc int, với một chuỗi cơ sở dữ liệu được đặt tên.
uuid
sử dụng thuật toán UUID 128 bit để tạo số nhận dạng của chuỗi loại là duy nhất trong mạng (địa chỉ IP được sử dụng). UUID được mã hóa dưới dạng một chuỗi dài 32 chữ số thập lục phân.
hướng dẫn
sử dụng chuỗi GUID do cơ sở dữ liệu tạo trên MS SQL Server và MySQL.
tự nhiên
chọn danh tính, trình tự hoặc hilo tùy thuộc vào khả năng của cơ sở dữ liệu bên dưới.
giao
cho phép ứng dụng gán một mã định danh cho đối tượng trước khi lệnh save () được gọi. Đây là chiến lược mặc định nếu không có phần tử nào được chỉ định.
lựa chọn
truy xuất khóa chính, được gán bởi trình kích hoạt cơ sở dữ liệu, bằng cách chọn hàng bằng một số khóa duy nhất và truy xuất giá trị khóa chính.
ngoại quốc
sử dụng định danh của một đối tượng liên kết khác. Nó thường được sử dụng cùng với một liên kết khóa chính.
trình tự-nhận dạng
một chiến lược tạo trình tự chuyên biệt sử dụng trình tự cơ sở dữ liệu để tạo giá trị thực, nhưng kết hợp điều này với JDBC3 getGeneratedKeys để trả về giá trị định danh đã tạo như một phần của quá trình thực thi câu lệnh chèn. Chiến lược này chỉ được hỗ trợ trên các trình điều khiển Oracle 10g được nhắm mục tiêu cho JDK 1.4. Nhận xét về các câu lệnh chèn này bị vô hiệu hóa do lỗi trong trình điều khiển Oracle.
Nếu bạn đang xây dựng một ứng dụng đơn giản với không nhiều người dùng đồng thời, bạn có thể sử dụng các bước tăng dần, nhận dạng, hilo, v.v. Đây là những ứng dụng đơn giản để cấu hình và không cần nhiều mã hóa bên trong db.