2017-05-28 3 views
0

Ich arbeite mit Hibernate Envers (4.3.5 Version). Bedingte Auditing verwenden (15.8. Hibernate Envers doc) Ich erbte EnversIntegrator, indem ich meinen eigenen customerEnversIntegrator erstelle. Um envers diesen zu verwenden, habe ich META-INF \ services \ org.hibernate.integrator.spi.Integrator den Pfad customerEnversIntegrator hinzugefügt. es hat gut funktioniert! Wenn ich es als Standard verlassen, aber die Anwendung META-INF \ services \ org.hibernate.integrator.spi.Integrator so geändert, dass der customerEnversIntegrator nicht vollständig verwendet wurde. so hat es tatsächlich nicht funktioniert Aber ich will nicht, dass diese Erklärung in der Jar-Ebene sein. Ich muss es von der Anwendung überschreiben. Ursache als ein Projekt - ich kann das Glas nicht steuern, es könnte aktualisiert werden usw.Überschreiben META-INF services org.hibernate.integrator.spi.Integrator von Hibernate Envers

Irgendwelche Ideen, wie Sie diese Datei überschreiben, ohne etwas im Jar zu ändern?

Antwort

0

Ohne genauer zu wissen, kann ich nur allgemein antworten.

Es sollte egal sein, wo Sie Ihre ServiceLoader-Datei platzieren, solange diese Datei während des Hibernate-Bootstraps im Klassenpfad ist und der Inhalt auf eine Klasse verweist, die auch im Klassenpfad sichtbar ist.

Es ist wahrscheinlich erwähnenswert, dass ich in Hibernate 6 einen viel optimierteren Ansatz für die bedingte Überwachung einführe, bei dem Benutzer Entity-spezifische Listener verwenden können (JPA-Style-Entity-Listener). Dies beseitigt die Notwendigkeit, jeden Listener zu überschreiben und kann einfach Plug-and-Play auf jede Entität bei Bedarf angewendet werden.

Verwandte Themen