Πώς μπορώ να ενεργοποιήσουν onLoad οντότητα () χρησιμοποιώντας Envers αδρανοποίησης;

ψήφοι
0

Είμαι προσθέτοντας αδρανοποίησης Envers να μου έργο Δισκοπότηρα 3. Παρατήρησα ότι για ένα από τα πρόσωπα μου, η οποία έχει μια onLoad()εκδήλωση, η onLoad()εκδήλωση δεν επικαλέστηκε για πρόσωπα αναθεώρηση Envers.

Πώς μπορώ να βεβαιωθώ ότι αυτός ο κώδικας είναι πάντα επίκληση, έστω και για ιστορικούς αναθεωρήσεις αυτού του φορέα;

Περίπτωση χρήσης:

Είμαι εργάζονται για μια ξεκούραστη υπηρεσία χρησιμοποιώντας θέα Δισκοπότηρα 3 JSON. Ένα από τα μαθήματα του τομέα μου έχει μια στήλη διάκρισης, η οποία θα πρέπει επίσης να αποδοθεί στην έξοδο JSON, ώστε ο καταναλωτής να μπορεί να πει τι είδους είναι. Για το λόγο αυτό, η οντότητα τομέα ορίζει μια onLoad()μέθοδο η οποία συμπληρώνει μια παροδική ιδιότητα που ταιριάζει στον τύπο διάκρισης:

class MyChildDomainClass extends MyBaseDomainClass {
    void onLoad() {
        valueType = ValueType.STRING
    }

    static mapping = {
        discriminator value: ValueType.STRING
    }
}

Αυτό λειτουργεί καλά για την κανονική περιπτώσεις τομέα, αλλά όταν κοιτάζω προς τα πάνω μια αναθεώρηση οντότητα από Envers' AuditQueryCreator, η queyr έλεγχος δεν επικαλείται τη onLoad()μέθοδο.

Φαίνεται σαν να μπορούσα βρόχο πάνω από τα αποτελέσματα και το χέρι επικαλούνται onLoad(), αλλά ήλπιζα υπήρχε ένας καλύτερος τρόπος να το διορθώσω αυτό.

Ευχαριστώ εκ των προτέρων!

Δημοσιεύθηκε 13/01/2020 στις 23:59
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
0

θα μπορούσατε να δοκιμάσετε να αλλάξετε τον τύπο επιστροφή στο «def», όπως αναφέρεται στο έγγραφο εδώ

class Person {
   String name
   Date dateCreated
   Date lastUpdated
   def onLoad() {
      log.debug "Loading ${id}"
   }
}
Απαντήθηκε 16/01/2020 στις 00:32
πηγή χρήστη

ψήφοι
0

Πώς μπορώ να βεβαιωθώ ότι αυτός ο κώδικας είναι πάντα επίκληση, έστω και για ιστορικούς αναθεωρήσεις αυτού του φορέα;

Δεν είμαι πολύ έμπειρα με Δισκοπότηρα, αλλά αυτά μοιάζουν πολύ με τα τυπικά Κοινοβουλευτική Συνέλευση Ίσης Εκπροσώπησης κύκλου ζωής περίπτωση σχολιασμένη γεγονότα και αυτά είναι πιθανό μεθόδους που Gorm (σαν μια εφαρμοστή ΚΠΔ) εμφάνιση για και επικαλούνται με βάση τον κύκλο ζωής μιας επιχείρησης.

Η μεγάλη σημασία να αφαιρέσει εδώ είναι ότι τα αντικείμενα επιστρέφονται από την Envers Query API δεν είναι οντότητες. Αυτά τα αντικείμενα δεν διαχειρίζεται ο πάροχος επιμονή, ώστε το σημαντικό να κάνουμε σαφή διάκριση αυτή ως που επηρεάζει πολλές προσδοκίες συμπεριφοράς επιμονή, όπως ανεξάρτητο πρόσωπα, οντότητα γεγονότα του κύκλου ζωής, κ.λπ.

Αν υπάρχει κάποια μετα-Προετοιμασία ή άλλο κύκλο ζωής callbacks ότι θα πρέπει να φωτιά κατά τη λήψη αποτελεσμάτων από μια AuditQuery, της σχετικά με τον κωδικό του χρήστη να κάνει τις διακρίσεις και επικαλούνται αυτές τις μεθόδους, όπως απαιτείται.

Απαντήθηκε 17/01/2020 στις 23:32
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more