Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen?

internet

Top Contributor
Hallo,

ich versuche mich gerade an Hibernate Envers.

Ich habe folgendes Problem:
- Derzeit nutze ich eine Entity (Activity), die mir quasi alle Aktivitäten trackt. Also "speichern", "update" etc.
Hierzu rufe ich bei der entsprechenden Methode (bspw. updateCustomer), die Methode "createActivity" auf.
Anschließend habe ich einen Eintrag in der Tabelle "Activity".
Mit Hibernate Envers möchte ich nun noch weiter gehen und protokolieren, was denn überhaupt geändert wurde.
Dazu habe ich es mit der Entity "Customer" probiert, was auch wunderbar funktioniert, sodass mir eine Kopie der Customer - Entity / Tabelle automatisch erzeugt wurde.

Nun kommt aber mein Problem:
- Ich würde gerne in der Actitvity - Tabelle die Referenz zu der entsprechenden Revision (AuditRevision_Fk) von Hibernate Enverse speichern. Die Revisionen werden in der Tabelle "AuditRevision" gespeichert. Hibernate Envers erzeugt ja automatisch im Hintergrund dann den Tabelleneintrag in der Customer_Audit - Tabelle und in der allgemeinen Revisions - Tabelle (heißt bei mir AuditRevision).
Nun habe ich gedacht, dass ich einfach in der "createActivity" - Methode den letzten Eintrag in der AuditRevision - Tabelle hole. Da funktioniert auch, aber es ist der falsche Eintrag, den für die aktuelle Operation ist der Eintrag noch nicht da.

D.h. wenn ich nun den Kunde update (updateCustomer), dann wird erst ganz am Ende dieser Methode der Eintrag in der "AuditRevision" - Tabelle erstellt - und genau diesen benötige ich um die Referenz in der Activity - Entity zu speichern.

Ich bräuchte nun entweder:
- Ich manage den Aufruf für Hibernate Envers selbst (wie die Activity),
- oder das Erstellen muss direkt nach der "entityManager.merge(customer);" - Ausführung erfolgen.

Hat hier jemand eine Idee?

Java:
public void updateCustomer(Customer customer){

   entityManager.merge(customer);

    // Create Activity
    activitiesProcessServiceBean.createActivity(customer,
                    customer.getEmployeeCreatorOrUpdate(),
                    Activities.ActionType.MODIFY.toString());
}

    



 public Activities createActivity(EntityPropertyFinder entityPropertyFinder, Employee employeeCreator,
                String activityType){
    
            LOGGER.info("START createActivity");
    
            Activities newActivities = new Activities();
            
            // AuditRevision
            AuditRevision auditRevision = jpaAuditUtilBean.findLastRevisionFromEntity(entityPropertyFinder.getClass(),
                    entityPropertyFinder.getId());
            newActivities.setAuditRevision(auditRevision);
            
            activitiesService.addActivities(newActivities);
    
            return newActivities;
        }


public AuditRevision findLastRevisionFromEntity(Class<? extends EntityPropertyFinder> class1, Long entityId) {
    
            AuditReader auditReader = AuditReaderFactory.get(entityManager);
            Object[] lastRevision = (Object[]) auditReader.createQuery()
                    .forRevisionsOfEntity(class1, false, false)
                    .add(AuditEntity.property("id").eq(entityId))
                    .addOrder(AuditEntity.revisionNumber().desc())
                    .setMaxResults(1)
                    .getSingleResult();
            
            if(lastRevision == null)
                return null;
            
            AuditRevision auditRevision = (AuditRevision) lastRevision[1];
    
            return auditRevision;
        }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: right near Allgemeine Java-Themen 6
P Hibernate Proxy Allgemeine Java-Themen 1
C Hibernate EJB JTA Allgemeine Java-Themen 4
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
Shoox Hibernate / JAXB für Schnittstellen Allgemeine Java-Themen 4
Jay_030 Guice + Hibernate = Probleme? Allgemeine Java-Themen 2
G Hibernate search (Lucene) - Index wird nicht rechtzeitig erzeugt? Allgemeine Java-Themen 2
H Hibernate: @OneToOne Beziehung Allgemeine Java-Themen 4
N Hibernate und Fehlermeldung Allgemeine Java-Themen 18
neurox Tutorial: Hibernate mit MySQL (erste Schritte) Allgemeine Java-Themen 34
P Hibernate oder Java Persistence API? Allgemeine Java-Themen 3
A Spring und Hibernate Allgemeine Java-Themen 2
MQue log4j mit hibernate Allgemeine Java-Themen 3
F Hibernate speichern - Null Allgemeine Java-Themen 5
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
M Hibernate frage zur Verbindung Allgemeine Java-Themen 3
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
G Obfuscator und Hibernate! Allgemeine Java-Themen 5
W JBoss,Axis2,Hibernate/JPA,Oracle - EntityManager Problem Allgemeine Java-Themen 4
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
J Hibernate & Java Allgemeine Java-Themen 4
A Hibernate und Swing Allgemeine Java-Themen 2
G Hibernate speichert Daten nur während Session in HSQL-DB Allgemeine Java-Themen 10
T JNA, Aufruf der Funktionen einer dll Allgemeine Java-Themen 5
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
berserkerdq2 Wie mache ich den rekursiven Aufruf in IJVM Allgemeine Java-Themen 3
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
P CMD Aufruf mit Admin-Rechte Allgemeine Java-Themen 2
cool_brivk24 Klassen Klassen Aufruf Fehlgeschlagen Allgemeine Java-Themen 14
D HTTP Aufruf einer Methode aus einem Servlet heraus Allgemeine Java-Themen 0
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Genson - zirkulärer Aufruf Allgemeine Java-Themen 1
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
B Kodierung von String -> URL aufruf Allgemeine Java-Themen 2
G Rekursiver Aufruf von Waagengewichten Allgemeine Java-Themen 2
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
M datei aufruf prüfen Allgemeine Java-Themen 9
D JNI DLL Aufruf Allgemeine Java-Themen 32
M datei aufruf datum auslesen Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
F Parameter im Link /jar-Aufruf Allgemeine Java-Themen 12
Z Socket Aufruf einer Klasse in einer anderen Klasse Allgemeine Java-Themen 6
A JNI: Unerklärlicher Crash beim Aufruf von CallVoidMethod Allgemeine Java-Themen 9
S Variablen bei Aufruf zurücksetzen Allgemeine Java-Themen 4
J yield() Aufruf in einer synchronized-Methode Allgemeine Java-Themen 13
R JAR aus Batchdatei Aufruf Allgemeine Java-Themen 4
Kr0e Sichtbarkeitsregeln nach Executor-Aufruf Allgemeine Java-Themen 5
F rekursiver Aufruf (Sudoku und Guice) Allgemeine Java-Themen 19
B Cipher.getInstance Aufruf sehr langsam Allgemeine Java-Themen 2
M Aufruf von Unix-Shell in Java Allgemeine Java-Themen 5
G Aufruf einer Methode in IStatus exex Allgemeine Java-Themen 4
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
C Netbeans - Aufruf-Reihenfolge Allgemeine Java-Themen 5
Nicer Problem mit Link aufruf Allgemeine Java-Themen 6
M Cobol-Aufruf aus Java Allgemeine Java-Themen 6
C Aufruf einer Methode einer anderen Klasse Allgemeine Java-Themen 14
T Lib/Framework zum Automatischen Aufruf von Methoden Allgemeine Java-Themen 2
R Ableiten - Methoden aufruf bei abgeleiteten Klassen Allgemeine Java-Themen 4
G DAOFactorry aufruf Allgemeine Java-Themen 10
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
V Aufruf von Klasse mit Runnable versteh ich nicht Allgemeine Java-Themen 8
S Übergabe / Aufruf einer beliebigen Methode in einer anderen Allgemeine Java-Themen 9
R toString() methode überschreiben mit rekursivem aufruf. Allgemeine Java-Themen 8
N Main-Klasse wird beim Aufruf des JARs nicht gefunden Allgemeine Java-Themen 8
D Problem bei Aufruf einer Funktion Allgemeine Java-Themen 3
B Null Pointer Exception bei Canvas-objekt-Aufruf Allgemeine Java-Themen 12
S Aufruf in Konsole mit beliebig vielen Argumenten? Allgemeine Java-Themen 18
reibi Aufruf eines private Konstruktors Allgemeine Java-Themen 7
M Rekrusiver Aufruf ? Allgemeine Java-Themen 6
D aufruf beim kopieren Allgemeine Java-Themen 11
J einfachster Servlet-Aufruf klappt nicht Allgemeine Java-Themen 3
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
S problem mit externen aufruf Allgemeine Java-Themen 4
M [Windows] Aufruf von Java mit Sonderzeichen im Classpath Allgemeine Java-Themen 5
D VM crash nach Aufruf von GetFieldID und GetMethodID in JNI Allgemeine Java-Themen 31
G PDF AUfruf Allgemeine Java-Themen 6
S Aufruf meines Programms Allgemeine Java-Themen 2
U zweifacher Aufruf animiertes gif Allgemeine Java-Themen 7
G Konstruktor-Aufruf nun mit oder ohne Typ? Allgemeine Java-Themen 9
T CMD nach aufruf von javaw Programmname wieder schließen Allgemeine Java-Themen 3
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
A Problem beim Aufruf von javac Allgemeine Java-Themen 7
W Aufruf von JavaBeans Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben