Jika Anda menggunakan pemicu, strategi pembuatan yang dimaksud adalah org.hibernate.id.SelectGenerator
. Namun, untuk menggunakan strategi ini, Hibernate harus dapat menemukan baris yang disisipkan setelah penyisipan untuk melihat nilai apa yang ditetapkan oleh pemicu. Ada 2 cara untuk melakukannya.
Pertama, secara khusus mengonfigurasi generator untuk memberi tahu kolom yang mendefinisikan kunci unik (setidaknya secara logika) di dalam tabel:
@Id
@Column(name="S_ID")
@GeneratedValue( strategy = "trigger" )
@GenericGenerator(
name="trigger", strategy="org.hibernate.id.SelectGenerator",
parameters = {
@Parameter( name="keys", value="userName" )
}
)
private String s_id;
private String userName;
Yang lainnya adalah melalui dukungan natural-id Hibernate:
@Id
@Column(name="S_ID")
@GeneratedValue( strategy = "trigger" )
@GenericGenerator( name="trigger", strategy="org.hibernate.id.SelectGenerator" ) )
private String s_id;
@NaturalId
private String userName;
GenerationType.IDENTITY dapat bekerja untuk Anda. Ini benar-benar akan turun ke driver JDBC dan bagaimana (jika) mengimplementasikan getGeneratedKeys