Wenn ein Feld mit Anmerkungen versehen ist insertable=false, updatable=false
, bedeutet dies nicht, dass Sie keinen Wert einfügen oder den vorhandenen Wert ändern können? Warum willst du das tun?
@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
quelle
quelle
insertable=false,updatable=false
auf einer der Seiten der Beziehung.... to the @ManyToOne relationship with the ...
??Das Definieren
insertable=false, updatable=false
ist nützlich, wenn Sie ein Feld in einer Entität mehrmals zuordnen müssen, normalerweise:Dies ist IMO keine semantische Sache, aber definitiv eine technische.
quelle
Ich möchte den Antworten von BalusC und Pascal Thivent eine weitere häufige Verwendung hinzufügen
insertable=false, updatable=false
:Stellen Sie sich eine Spalte vor, die keine ID, sondern eine Sequenznummer ist . Die Verantwortung für die Berechnung der Sequenznummer muss nicht unbedingt bei der Anwendung liegen.
Beispielsweise beginnt die Sequenznummer mit 1000 und sollte für jede neue Entität um eins erhöht werden. Dies ist in der Datenbank leicht und sehr angemessen möglich, und in solchen Fällen sind diese Konfigurationen sinnvoll.
quelle
Ein anderes Beispiel befindet sich in der Spalte "created_on", in der die Datenbank die Datumserstellung übernehmen soll
quelle