Modifica l'attributo di lista in JPA quando è nullo?

0

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

    
posta Siddharth Trikha 09.08.2018 - 12:05
fonte

0 risposte

Leggi altre domande sui tag