Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Mit Hilfe von Entity Listener kann man auf verschiedene Änderungen in einem Entity reagieren, zum Beispiel beim Speichern eines Entities, um diese Speicher-Aktion mit zu loggen. Mit Hilfe des Entity Listener Assistenten können Sie sich den benötigten Entity Listener generieren lassen und müssen anschließend nur noch den Code einfügen, der nach dem Auslösen des Events ausgeführt werden soll. Insgesamt werden 7 Events unterstützt. 

...

The Entity Listener allows you to respond to the various changes to an entity that are made, e.g. when saving an entity to log this saving action. You can use the Entity Listener wizard to generate the required entity listener so that you only have to enter the code that has to be executed after triggering the event. A total of seven events are supported:

  • PrePersist - Is executed before the entity is persisted. Is also executed when sub-entities are persisted (Cascade).
  • PostPersist - Wird ausgeführt, nachdem das Entity persistiert wurde  Is executed after the entity has been persisted (INSERT). Wird auch bei der Persisitierung von Unter-Entities ausgeführt  Is also executed when sub-entities are persisted (Cascade).
  • PreRemove - Wird ausgeführt, bevor das Entity gelöscht wird. Wird auch bei der Löschung von Unter-Entities ausgeführt  Is executed before the entity is removed. Is also executed when sub-entities are removed (Cascade).
  • PostRemove - Wird ausgeführt, nachdem das Entity gelöscht wurde. Wird auch bei der Löschung von Unter-Entities ausgeführt  Is executed after the entity has been deleted. Is also executed when sub-entities are removed (Cascade).
  • PreUpdate - Wird ausgeführt, bevor das Entity upgedated wird Is executed before the entity is updated.
  • PostUpdate - Wird ausgeführt, nachdem das Entity upgedated wurde Is executed after the entity has been updated.
  • PostLoad - Wird ausgeführt, nachdem das Entity geladen oder aktualisiert wurde.
  1. Klicken Sie im Entity-Editor auf Add Listener.
  2. Legen Sie bei Name eine Bezeichnung für den Entity Listener fest oder übernehmen Sie den Namensvorschlag, z.B. CarListener
  3. Legen Sie bei Callback methods fest, für welche Änderungen im Entity entsprechende Callback-Methoden generiert werden sollen, z.B. PrePersist.
    Image Removed
  4. Klicken Sie auf Finish.
  5. Selektieren Sie im Projektmanagement Entities die generierte Klasse CarListener.java und fügen Sie bei der Callback-Methode den entsprechenden Aktions-Code ein.
Ergebnis:
  • CarListener.java - Der Assistent generiert im Projektmanagement > Entities die Klasse CarListener.java und setzt im Entity Car die Annotation  Is executed after the entity has been loaded or updated.

  1. In the entity editor, click Add Listener.
  2. Define a name for the entity listener under Name or apply the proposed name, e.g. CarListener.
  3. Under Callback methods, define which changes in the entity you want to generate the corresponding callback methods for, e.g. PrePersist.
    Image Added
  4. Click on Finish
  5. Under Project Management Entities, select the generated CarListener.java class and add the corresponding action code under Callback method.
Result:
  • CarListener.java: Under Project Management > Entities, the wizard generates the CarListener.java class and adds the annotation @EntityListeners(CarListener.class) to the Car entity.

    Code Block
    languagejava
    themeConfluence
    package com.company.examples.entities;
    
    import javax.persistence.PrePersist;
    
    public class CarListener {
    
    	@PrePersist
    	public void prePersist(Car car) {
       
        // Action before the entity is persisted
    
    	}
    }
Hinweis:
  • Generierter Code - Der Assistent funktioniert nur unidirektional. D.h., die generierten Methoden können nur im Code editiert oder entfernt werden.

...

Note:
  • Generated code: The wizard only works unidirectionally. This means that the generated methods can be edited or removed only in the code.

Hibernate Documentation