Tengo un proyecto JPA (EclipseLink) existente donde el comportamiento deseado es que si se le da un valor nulo en un campo para una entidad, ese valor nulo no se debe conservar.¿Existe alguna forma de evitar que los valores nulos se mantengan mientras se permite el paso a otros?
El caso de uso es que podemos obtener varias actualizaciones parciales a estas entidades de fuentes externas. Esas fuentes pueden darnos un valor nulo, eso no significa "anular este campo", significa "no tengo este valor".
¿Hay alguna anotación, patrón u otra herramienta que se pueda usar para automatizar una comprobación nula en el colocador O decirle a JPA que no persista valores nulos ????
Puedo atravesar CADA armador en CADA entidad y agregar if(val != null) { //set the value }
, pero eso es tedioso y repetitivo.
Por ejemplo, tenemos:
@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;
}
}
me gustaría tener algo que ayudaría de forma automática la siguiente manera:
@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 esto:
@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;
}
}
}
pregunta interesante, me gustaría ver una respuesta para ello. ;) Aquí hay algo que parece sugerir que esto será posible: http://projectlombok.org/features/index.html – x4u
Lombok está cerca, pero tendría que modificarlo un poco para generar el patrón que estoy después. – Freiheit