JPA "Sperren" von Datensätzen (Richtiger Lösungsansatz?)

Diskutiere "Sperren" von Datensätzen (Richtiger Lösungsansatz?) im Data Tier Forum; Hallo zusammen, ich habe bereits ein wenig Erfahrung mit JPA. Nun arbeite ich wieder an einer Software für eine kleine Firma. Dabei handelt es...

  1. sven-meye
    sven-meye Neues Mitglied
    Hallo zusammen,

    ich habe bereits ein wenig Erfahrung mit JPA. Nun arbeite ich wieder an einer Software für eine kleine Firma. Dabei handelt es sich um eine kleine Fakturierungssoftware (Leistungserfassung). Nun gibt es eine Entität "Leistung", welche verrechnet bzw. fakturiert wird. Wenn dies der Fall ist, darf keine Änderung mehr an den Attributen der Entität stattfinden! Das Attribut "fakturierungsdatum" hat den Wert null oder das Datum an dem die Leistung verrechnet wurde.
    Code (Java):

    @Temporal(value = TemporalType.DATE)
    private LocalDate fakturierungsdatum;
     
    Ist dieses Datum gesetzt, soll keine Änderung mehr erlaubt sein. Jetzt habe ich mich gefragt, was die Beste Variante ist, um Änderungen zu verhindern. Soweit ich bis jetzt herausgefunden habe, ist das "Locken" von JPA ja nicht wirklich eine dauerhafte Lösung. Darum habe ich mir überlegt in die Setter-Methoden folgenden Code einzufügen:
    Code (Java):

    public void setTotal(Double total) throws NoChangesAllowedException {
        if(isFakturiert()) throw new NoChangesAllowedException(ResourceBundleFactory.getResourceBundle().getString("exception.illegalAccess.message"));

    private boolean isFakturiert() {
        return (fakturierungsdatum != null);
    }
     
    Allerdings zweifle ich daran, dass das eine "schöne" Lösung ist. Wie könnte man das besser lösen? Ich hatte mir überlegt, eine Abfrage bei Verarbeiten der Daten auf der Oberfläche zu machen, allerdings ist dies fehleranfällig, denn geht die Abfrage vergessen, können trotzdem Änderungen vorgenommen werden. Darum muss ja fast direkt auf der Entität validiert werden, um Fehler zu vermeiden, sehe ich das richtig?

    Vielen Dank für eure Antworten!
    Sven
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. mrBrown
    mrBrown Bekanntes Mitglied
    Ich würde die Validierung immer zusätzlich auch in der Entity selber machen.

    Die Daten können dann natürlich noch direkt über die DB verändert werden, ich weiß aber ehrlich gesagt auch nicht, ob irgendeine DB da Möglichkeiten bietet, Datensätze immutable zu machen.
     
  4. Flown
    Flown Administrator Mitarbeiter
    Stichwort: trigger
     
  5. Flown
    Flown Administrator Mitarbeiter
    Oder sogar JPA Events oder vielleicht sogar eine Kombination aus beiden.
     
Die Seite wird geladen...

"Sperren" von Datensätzen (Richtiger Lösungsansatz?) - Ähnliche Themen

Screen einschalten, entsperren und anlassen
Screen einschalten, entsperren und anlassen im Forum Mobile Geräte
.Script-Datei entfernen oder sperren
.Script-Datei entfernen oder sperren im Forum Datenbankprogrammierung
Meldungen versperren den Zugang
Meldungen versperren den Zugang im Forum AWT, Swing, JavaFX & SWT
Dateien für Benutzer Sperren
Dateien für Benutzer Sperren im Forum Allgemeine Java-Themen
JTextArea - Leertaste "sperren"
JTextArea - Leertaste "sperren" im Forum AWT, Swing, JavaFX & SWT
Thema: "Sperren" von Datensätzen (Richtiger Lösungsansatz?)