Sto utilizzando EclipseLink
come mia implementazione JPA e Postgresql
come mio DB.
JPA:
@Struct(name="label,.....")
@Entity
@Table(name="\"XYZ\"", schema="\"XYZ\"")
@NamedQuery(name="XYZ.findAll", query="SELECT r FROM XYZ r")
public class XYZ implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="\"resourceID\"")
private String resourceID;
@Array(databaseType = "text")
@Column(name="\"label\"")
private List<String> label;
.........
// getter/setters
}
Ho un requisito tale che per ogni attributo List
nel mio JPA, ogni volta che il valore è null
, voglio salvare l'elenco a partire dalla dimensione 1 con il primo elemento impostato su null
.
null-----> [null]
Quindi, disinseriscilo all'indietro durante il recupero indietro se l'elenco è in arrivo come [null]
impostalo su null
e restituiscilo all'utente.
[null]-----> null
Attualmente posso pensare a questo approccio di modifica di ogni getter / setter di List
type, per impostare / annullare il requisito di cui sopra. Qualcosa di simile
public List<String> getLabels() {
return unset(this.labels);
}
public void setLabels(List<String> labels) {
this.labels = set(labels);
}
Qui, set
& unset
aggiungi l'elenco precedente con il primo elemento null e reverse.
C'è un approccio più pulito a questo? Con questo devo modificare ogni gett/sett
di List
tipo che è un po 'macchinoso.
Non sono riuscito a trovare alcuna annotazione in EclipseLink
direttamente per modificare un valore prima di persistere.
Qualsiasi aiuto sarebbe apprezzato