> Dalam mendesain database saat ini maka saya umumnya menggunakan > dua jenis key. Key pertama adalah primary key dan ini adalah > system generated menggunakan auto increment atau guid. > Key kedua adalah natural key. Jika dalam tabel ada satu field atau > kumpulan field yang bisa menjadi identitas unik dari record maka > itu saya jadikan natural key dengan cara bikin index dengan > constraint unique. Kalau nggak ada natural key maka cukup > pakai primary key. Dari pengalaman saya maka desain dual key > ini cocok jika menggunakan teknologi ORM baik Hibernate maupun JPA.
Untuk konfigurasi Primary key (guid) dan Natural key (dengan menggunakan constrain unique) apakah konfigurasinya kira2 seperti ini? @Entity @Table(name="t_systemnumber", uniqueConstraints = {...@uniqueconstraint(columnNames={"CODE_SYS", "PREFIX","SUFFIX"})} ) public class SystemNumber implements java.io.Serializable{ @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="ID_SYS") private int idSys; @Column(name="CODE_SYS", nullable=false, unique=false, length=20) private String codeSys; @Column(name="PREFIX", nullable=true, unique=false, length=10) private String prefix; @Column(name="NUMBER", nullable=false, unique=false, length=20) private String number; @Column(name="SUFFIX", nullable=true, unique=false, length=10) private String suffix; Nb : ini hasil dari post contoh mas onsir salman.. =========================================================== misalkan relasi tabel saya misalkan seperti ini : > - Mhs(*KdMhs,NamaMhs) > - Soal(*KdSoal,Soal) > - JenisSoal(*KdJenis,JenisSoal) > - Test(*KdTest,Tanggal,KdMhs) > - TestDetail(*KdTest,*KdSoal, *KdJenisSoal,status) (versi1) untuk TestDetail, jadi berubah seperti ini aja yach : TestDetail(*Id(auto increament),KdTest,KdSoal, KdJenisSoal,status) (versi2) untuk di TestDetail yang versi2, baik KdTest, KdSoal, dan juga KdJenisSoal, diperoleh dari JoinColumn.. apakah konfigurasinya menjadi seperti ini? @Entity @Table(name="TestDetail", uniqueConstraints = {...@uniqueconstraint(columnNames={"KdTest", "KdSoal","KdJenisSoal"})} ) public class TestDetail implements java.io.Serializable{ @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="Id") private int id; @ManyToOne @JoinColumn(name = "KdTest") private Test test; @ManyToOne @JoinColumn(name = "KdSoal") private Soal soal; @ManyToOne @JoinColumn(name = "KdJenisSoal") private JenisSoal jenissoal; //Getter n setter } Mohon pencerahannya yach.. Thank's -- View this message in context: http://www.nabble.com/Tanya-Struts2-Spring-Hibernate-%28SSH%29-tp21622632p21980277.html Sent from the JUG Indonesia mailing list archive at Nabble.com.