Mentakrifkan Perhubungan dengan Anotasi dalam Hibernate 4 menggunakan Spring
Untuk melaksanakan pelbagai jenis perhubungan menggunakan anotasi dalam Hibernate 4 untuk kelas yang disediakan, Foo dan Bar, mari kita mendalami secara khusus.
Satu-dengan-banyak Hubungan Uni-Arah:
Konfigurasikan kelas Foo dengan anotasi @OneToMany dan Senarai< Bar> harta benda. Biarkan kelas Bar tidak berubah. Ini mewujudkan perhubungan satu-dengan-banyak di mana Foo boleh mempunyai berbilang objek Bar yang berkaitan, tetapi Bar tidak boleh merujuk kembali kepada Foo.
Perhubungan Satu-dengan-Banyak Dwi-arah (diuruskan oleh Foo.class ):
Gunakan anotasi @OneToOne dengan lata = CascadeType.ALL pada Foo.class. Tambahkan anotasi @JoinColumn yang menyatakan lajur pada Bar.class yang harus digunakan untuk gabungan. Untuk Bar.class, gunakan anotasi @OneToOne dan nyatakan mappedBy = "bar" untuk menunjukkan bahawa perhubungan itu diuruskan oleh Foo.class.
Perhubungan Satu-dengan-banyak Uni-Directional menggunakan Pengguna- terurus Jadual Sertai:
Gunakan anotasi @OneToMany dengan anotasi @JoinTable untuk menentukan jadual gabungan yang berasingan. Tentukan lajur gabungan dengan anotasi @JoinColumn pada kedua-dua belah pihak. Gunakan kelas tambahan untuk mewakili jadual gabungan, jika perlu.
Perhubungan Satu-ke-Banyak Dwiarah menggunakan Pemetaan Kunci Asing:
Pada Foo.class, gunakan @OneToMany(mappedBy = "bar") untuk memetakan perhubungan. Pada Bar.class, gunakan @ManyToOne(cascade = { CascadeTyep.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }) dengan anotasi @JoinColumn.
Dwi-arah Banyak-ke-Banyak menggunakan Hibernate -managed Join Table:
Gunakan @ManyToMany pada kedua-dua Foo.class dan Bar.class, dan gunakan anotasi @JoinTable untuk jadual gabungan, dengan menyatakan lajur gabungan.
Many-to-Many dwi-arah menggunakan Objek Join Table diurus Pengguna:
Sama seperti contoh satu-ke-banyak uni-arah, gunakan @OneToMany dengan anotasi @JoinTable. Cipta kelas berasingan untuk mewakili jadual gabungan dan petakan perhubungan pada Foo.class dan Bar.class menggunakan @ManyToOne.
Menentukan Jenis Ambil:
Gunakan fetchType .MALAS untuk melengahkan pemuatan koleksi berkaitan sehingga ia diakses. Gunakan fetchType.EAGER untuk memuatkan koleksi dengan segera, tetapi ambil perhatian bahawa ia boleh menjejaskan prestasi. Pertimbangkan untuk menggunakan Hibernate.initialize() dalam kelas Perkhidmatan anda untuk memulakan koleksi yang dimuatkan secara manual untuk kes penggunaan tertentu.
Menentukan Arah Lata:
Gunakan anotasi @Cascade untuk nyatakan pilihan melata. Secara amnya, lata berubah ke arah perhubungan pemilikan. Elakkan daripada menghantar kemas kini atau pemadaman daripada anak kepada ibu bapa jika ia tidak masuk akal dalam konteks aplikasi.
Penyingkiran Anak Yatim:
Tetapkan orphanRemoval = benar pada anotasi @OneToMany supaya Hibernate secara automatik memadamkan objek yatim (iaitu, objek yang tidak dikaitkan dengan mana-mana objek induk lain) apabila ia dialih keluar daripada koleksi pada objek induk.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Hubungan dengan Anotasi dalam Hibernate 4 menggunakan Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!