Hallo,
ich möchte gerne folgendes für ein Logging umsetzen.
Prinzipiell ähnlich, wie es Hibernate Envers macht - allerdings verspreche ich mir durch die eigene Entwicklung mehr Flexibität.
- Ich habe zwei Entity Klassen:
1. Normale Entity - Klasse
2. Entity - Logging - Klasse
Die Entity - Logging - Klasse wird erweitert um:
Nun hätte ich gerne eine Funktion, die mir:
1) Das zuletzt gespeicherte Objekt aus der Logging - Tabelle holt
2) Nun mit dem aktuellen Objekt gegen 1) vergleicht.
-> Das sollte kein Problem sein.
Wobei ich nun aber Hilfe benötige ist, wie ich die Funktion nun dynamisch aufbaue, sodass ich nicht für jede Klasse zig Prüfungen selbst erstellen muss.
Mir schwebt also sowas vor:
Geht das nicht iwie mit Reflection?
Was ich auch noch benötige, die Audit Klasse dynamisch zu holen.
Der Aufbau ist ja auch hier der gleiche <ClassName>_Audit.
Wie kann ich per Reflection eine Klasse finden, die dann so heißt?
ich möchte gerne folgendes für ein Logging umsetzen.
Prinzipiell ähnlich, wie es Hibernate Envers macht - allerdings verspreche ich mir durch die eigene Entwicklung mehr Flexibität.
- Ich habe zwei Entity Klassen:
1. Normale Entity - Klasse
2. Entity - Logging - Klasse
Die Entity - Logging - Klasse wird erweitert um:
- Revisionsnummer
- Revisionstyp (Create, Delete, Modify)
- Die Klasse enthält alle Felder, die auch die "Normale Entity - Klasse" hat
- Zusätzlich gibt es für jedes Feld ein boolean, der speichert, ob sich der Wert verändert hat oder nicht. ("Check Field). Das Feld ist immer gleich aufgebaut: nameProperty_MOD
Nun hätte ich gerne eine Funktion, die mir:
1) Das zuletzt gespeicherte Objekt aus der Logging - Tabelle holt
2) Nun mit dem aktuellen Objekt gegen 1) vergleicht.
-> Das sollte kein Problem sein.
Wobei ich nun aber Hilfe benötige ist, wie ich die Funktion nun dynamisch aufbaue, sodass ich nicht für jede Klasse zig Prüfungen selbst erstellen muss.
Mir schwebt also sowas vor:
- Hole mir alle Felder der Klasse. Die Feldernamen sind ja dennoch beide gleich
- Prüfe, ob sich der Wert geändert hat
- Wenn sich der Wert geändert hat, dann setze bei dem jeweiligen Feld dessen das ("Check Field) mit true.
Geht das nicht iwie mit Reflection?
Was ich auch noch benötige, die Audit Klasse dynamisch zu holen.
Der Aufbau ist ja auch hier der gleiche <ClassName>_Audit.
Wie kann ich per Reflection eine Klasse finden, die dann so heißt?
Java:
public void generateAudition(Object object) {
// 1. Das letzte gespeicherte Objekte aus der Datenbank holen
Class clazz = object.getClass();
}
Zuletzt bearbeitet: