Jika bidang diberi keterangan insertable=false, updatable=false
, bukankah itu berarti Anda tidak bisa memasukkan nilai atau mengubah nilai yang ada? Mengapa Anda ingin melakukan itu?
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy="person", cascade=CascadeType.ALL)
private List<Address> addresses;
}
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name="ADDRESS_FK")
@Column(insertable=false, updatable=false)
private Person person;
}
java
jpa
jakarta-ee
eclipselink
Thang Pham
sumber
sumber
insertable=false,updatable=false
salah satu sisi hubungan.... to the @ManyToOne relationship with the ...
??Menentukan
insertable=false, updatable=false
berguna ketika Anda perlu memetakan bidang lebih dari satu kali dalam suatu entitas, biasanya:Ini IMO bukan hal semantik, tapi jelas teknis.
sumber
Saya ingin menambahkan jawaban BalusC dan Pascal Thivent penggunaan umum lainnya dari
insertable=false, updatable=false
:Pertimbangkan kolom yang bukan id tetapi semacam nomor urut . Tanggung jawab untuk menghitung nomor urut mungkin belum tentu menjadi milik aplikasi.
Misalnya, nomor urut dimulai dengan 1000 dan harus bertambah satu untuk setiap entitas baru. Ini mudah dilakukan, dan sangat tepat, dalam database, dan dalam kasus seperti ini konfigurasi ini masuk akal.
sumber
Contoh lain adalah pada kolom "Created_on" di mana Anda ingin membiarkan database menangani pembuatan tanggal
sumber