Ho un progetto JPA (EclipseLink) esistente in cui il comportamento desiderato è che se un valore nullo in un campo per un'entità viene assegnato, il valore null non deve essere mantenuto.Esiste un modo per impedire che i valori nulli vengano mantenuti mentre consentono il passaggio ad altri?
Il caso di utilizzo è che potremmo ottenere diversi aggiornamenti parziali a queste entità da fonti esterne. Queste fonti possono darci un valore nullo, che non significa "annullare questo campo" significa "Non ho questo valore".
C'è un'annotazione, modello o altro strumento che può essere utilizzato per automatizzare un controllo Null nel setter O dire a JPA di non persistere valori nulli ????
Posso passare attraverso OGNI settatore in OGNI entità e aggiungere if(val != null) { //set the value }
ma che è noioso e ripetitivo.
Per esempio abbiamo:
@Entity
@Table(name = "my_table")
public class MyObject {
@Column
private String myColumn;
public String getMyColumn() {
return this.myColumn;
}
public void setMyColumn(String val) {
this.myColumn = val;
}
}
Vorrei avere qualcosa che avrebbe automaticamente aiutare in questo modo:
@Entity
@Table(name = "my_table")
public class MyObject {
@Column
@DontPersistIfNull
private String myColumn;
public String getMyColumn() {
return this.myColumn;
}
public void setMyColumn(String val) {
this.myColumn = val;
}
}
O questo:
@Entity
@Table(name = "my_table")
public class MyObject {
@Column
private String myColumn;
public String getMyColumn() {
return this.myColumn;
}
public void setMyColumn(String val) {
//AUTOGENERATED NULL CHECK
if(val != null) {
this.myColumn = val;
}
}
}
Domanda introspettiva, mi piacerebbe vedere un asnwer per questo. ;) Ecco qualcosa che sembra suggerire che ciò sarà possibile: http://projectlombok.org/features/index.html – x4u
Lombok è vicino, ma avrei bisogno di modificarlo un po 'per generare lo schema che sono dopo. – Freiheit