Ist es möglich, neue Entitäten in einem @ Pre / PostPersist Listener persistent zu machen?

9

Ich versuche, meine Hibernate-Anwendung so einzurichten, dass jedes Mal, wenn eine Notification -Entity erstellt wird, eine neue Activity -Einheit erhalten bleibt - im Moment läuft alles, was ich probiert habe, nicht still Protokolle aber SQL wird nie ausgeführt).

Kann jemand bestätigen, dass es sogar möglich ist, zusätzliche Entitäten in den Hibernate pre / postPersist-Listenern zu erhalten?

Ich habe in der Dokumentation gelesen:

  

Eine Callback-Methode darf keine EntityManager- oder Abfrage-Methoden aufrufen!

Aber ich habe mehrere andere Diskussionsthreads gelesen, die darauf hindeuten, dass dies möglich ist.

Als Referenz sind die beiden Ansätze, die ich versucht habe:

  1. Notification method - legt eine cascade.ALL-Beziehung zwischen @PrePersist und Activity fest und erstellt in der PrePersist-Methode einfach ein neues Notification und verknüpft es mit dem Notification , das in a erstellt wird hoffe, dass der Activity beibehalten wird.

  2. Notification Methode - Verwenden von @PostPersist und einer ListenerClass, Verdrahtung in einem Service und Erstellen einer neuen @Configurable -Entität und dann expliziten Aufruf des EntityManger persistent

Kann jemand bestätigen, was ich versuche, ist möglich?

    
rhinds 26.12.2011, 21:11
quelle

2 Antworten

1

Warum müssen Sie Notification in @PrePersist oder @PostPersist function beibehalten? Der folgende Code sollte beide Entitäten beibehalten:

%Vor%

UPDATE : Sie können versuchen, den Link im Konstruktor der Aktivität wie folgt zu erstellen:

%Vor%

Beachten Sie, dass Sie @PostPersist nicht verwenden können. Um genauer zu sein, müssen Sie Notification mit Activity verknüpfen, bevor Sie Activity beibehalten, damit cascade={CascadeType.PERSIST} funktioniert.

    
Mr.J4mes 26.12.2011, 21:32
quelle
2

Sie können zusätzliche Entitäten in Hibernate-Ereignis-Listenern (Einfügen, Aktualisieren, Flush usw.) mit dem StatelessSession -Schnittstelle. Aber ich weiß nicht, ob dies auch mit strengem JPA-Code ( EntityManagerFactory und EntityManager ) möglich ist.

    
tscho 26.12.2011 22:06
quelle

Tags und Links