Apa perbedaan antara anotasi @Column
dan @Basic
di JPA? Bisakah mereka digunakan bersama? Haruskah mereka digunakan bersama? Atau apakah salah satunya cukup?
sumber
Apa perbedaan antara anotasi @Column
dan @Basic
di JPA? Bisakah mereka digunakan bersama? Haruskah mereka digunakan bersama? Atau apakah salah satunya cukup?
@Basic
menandakan bahwa atribut harus dipertahankan dan pemetaan standar akan digunakan. Ini memiliki parameter yang memungkinkan Anda untuk menentukan apakah atribut akan dimuat secara malas dan apakah itu nullable.
@Column
memungkinkan Anda menentukan nama kolom dalam database tempat atribut tersebut akan dipertahankan.
Jika Anda menentukan satu tanpa yang lain maka Anda mendapatkan perilaku default yang masuk akal, jadi umumnya orang hanya menggunakan satu dengan pengecualian kasus khusus.
Jadi jika kita menginginkan sebuah atribut lazy loading dan untuk menentukan nama kolom kita bisa mengatakannya
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
Jika kita membutuhkan default, perilaku non-malas maka hanya @Column
itu sudah cukup.
@Basic
tanpa@Column
, itulah sebabnya propertioptional
dannullable
ada di keduanya. Apakah saya benar?Selain jawaban @ djna , perlu dicatat bahwa
@Basic
harus dibandingkan dengan@OneToMany
,@ManyToOne
dan@ManyToMany
. Hanya satu dari ini yang dapat ditentukan di properti mana pun.@Column
dan@JoinColumn
dapat ditentukan bersama dengan ini untuk menjelaskan properti kolom database.Ini adalah dua kumpulan anotasi yang dapat digunakan bersama, tetapi hanya satu anotasi dari setiap kumpulan yang dapat digunakan dalam satu waktu.
sumber
Perlu dicatat bahwa Basic dirancang untuk bidang primitif
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes
sumber
Anotasi @Basic diterapkan ke entitas JPA, dan dari @Column diterapkan ke kolom database Atribut opsional anotasi @Basic menentukan apakah kolom entitas bisa kosong atau tidak; di samping itu,
sumber