Se un campo è annotato insertable=false, updatable=false
, non significa che non è possibile inserire un valore né modificare il valore esistente? Perché vorresti farlo?Spiegazione: insertable = false, aggiornabile = false
@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;
}
Si riferisce alla definizione di 'inseribile = false, aggiornabile = false' su uno dei lati della relazione . – BalusC
Stai dicendo che con updatable = false su Person disabiliterà l'aggiornamento di Person.name durante l'aggiornamento dell'indirizzo (non sono d'accordo poiché questo è lo scopo di cascata). Inoltre stai dicendo che la definizione @Column fa qualcosa di diverso quando la sua chiave esterna (Person) e quando non è una chiave esterna (in quanto non esiste un'entità referenziata per disabilitare l'aggiornamento). Leggendo javadoc per aggiornabile direi che sarà semplicemente disabilitare per cambiare la Persona per un dato indirizzo se è persistente una volta. Puoi spiegare per favore? – Flowy
Penso che volevi dire '... alla relazione @ManyToOne con il ...' ?? –