1 2 Previous Next 25 Replies Latest reply on Sep 29, 2011 3:48 PM by inna1411

    CustomEnversListener and Spring

    inna1411

      I'm new to Envers, but was able to implement the basic auditing without problems. Now I'm trying to use my own table instead of REVINFO for saving the username. But no success !

       

      My environment :

       

      Hibernate 3.3.1  (not using config, but annotations instead)

      Spring 2.6

      Envers 1.2.2.GA

       

      I created CustomEnversListener.java and  CustomRevisionEntity.java as suggested by specs, but auditing process is still looking for REVINFO.

      What changes should I make in Spring application-config.xml under sessionFactory bean to register CustomEnversListener.java ?

       

       

         <property name="eventListeners">

                  <map>

                      <entry key="post-update">

                          <bean class="org.hibernate.envers.event.AuditEventListener">   ?????   

                                 should I add  settings for CustomEnversListener here ?  If, yes, how ?

                          </bean>           
                      </entry>
                  </map>
              </property>

       

      CustomRevisionEntity.java


      package com.company.audit;


      import org.hibernate.envers.RevisionEntity;
      import org.hibernate.envers.RevisionNumber;
      import org.hibernate.envers.RevisionTimestamp;

      import javax.persistence.*;

      @Entity
      @Table(name = "revision_info")
      @RevisionEntity(CustomEnversListener.class)
      public class CustomRevisionEntity
      {
          private int id;
          private long timestamp;    private String username = "test";

          @Id
          @RevisionNumber
          @Column(name = "revision_id", nullable = false, updatable = false)
          public int getId()
          {
              return id;
          }

          public void setId(int id)
          {
              this.id = id;
          }

          @RevisionTimestamp
          @Column(name = "revision_timestamp")
          public long getTimestamp()
          {
              return timestamp;
          }

          public void setTimestamp(long timestamp)
          {
              this.timestamp = timestamp;
          }

          @Column(name = "username")
          public String getUsername()
          {
              return username;
          }

          public void setUsername(String username)
          {
              this.username = username;
          }
      }

      CustomEnversListener.java

       

      package com.company.audit;

       

      import org.acegisecurity.Authentication;
      import org.acegisecurity.context.SecurityContextHolder;
      import org.hibernate.envers.RevisionListener;

      public class CustomEnversListener implements RevisionListener
      {
          public void newRevision(Object revisionEntity)
          {
              CustomRevisionEntity customRevisionEntity = (CustomRevisionEntity) revisionEntity;
              Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
              customRevisionEntity.setUsername(authentication.getName());
          }
      }

       

      The output looks like :

       

      Hibernate: insert into REVINFO (REVTSTMP, REV) values (?, ?)

      [ERROR] JDBCExceptionReporter GDS Exception. 335544569. Dynamic SQL Error

      SQL error code = -204

      Table unknown

       

       

      REVINFO doesn't exist and revision_info (see at the top) has been created in Firebird 2.1.

       

      Please help to solve this problem !

        • 1. Re: CustomEnversListener and Spring
          hernanbolido

          Hi!

           

          Make sure that your custom revision entity is included in hibernate' session factory. You can enable org.hibernate.cfg category on info level and verify this.

          I'm using spring + hibernate + envers with no problems.

           

          Regards. Hernán.

          • 2. Re: CustomEnversListener and Spring
            inna1411

            Thank you, Hernan !

            I understand I have to insert an entry inside sessionFactory, but can't figure out how it should look.

             

            How to specify AuditEventListener should use CustomEnversListener ?

             

            <bean name="customEnversListener" class="com.company.audit.CustomEnversListener"/>

             

            <sessionFactory ...>

                    <property name="eventListeners">

                        <map>

                            <entry key="post-update">

                                <bean class="org.hibernate.envers.event.AuditEventListener">

                                       <map>

                                             <entry key="?" value-ref="customEnversListener"/>

                                        <map>

                                </bean>           
                            </entry>
                        </map>
                    </property>

            </sessionFactory>

             

            Thank you.

            Izabella.

            • 3. Re: CustomEnversListener and Spring
              hernanbolido

              Hi!

               

              You should add your revision entity as any other normal entity in your system...

               

               

              Regards. Hernán.

              • 4. Re: CustomEnversListener and Spring
                inna1411

                Hi !

                 

                I can't figure out the name of the property :

                 

                <property name="???" class="org.hibernate.envers.event.CustomRevisionEntity"/>

                 

                Thank you,

                 

                Izabella.

                • 5. Re: CustomEnversListener and Spring
                  hernanbolido

                  Hi!

                   

                  I have the eventListeners like this:

                   

                  <property name="eventListeners">

                      <map>

                          <entry key="post-insert">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                          <entry key="post-update">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                          <entry key="post-delete">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                          <entry key="pre-collection-update">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                          <entry key="pre-collection-remove">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                          <entry key="post-collection-recreate">

                              <ref bean="enversAuditEventListener" />

                          </entry>

                      </map>

                  </property>

                   

                  and the enversAuditEventListener bean is:

                   

                  <bean id="enversAuditEventListener"

                      class="bla.bla.MyCustomAuditEventListener">

                  </bean>

                   

                  There is no info about the revision entity there.

                   

                  Regards. Hernán.

                  • 6. Re: CustomEnversListener and Spring
                    inna1411

                    Hi Hernan,

                     

                    Before I opened this discussion I tried :

                     

                        <property name="eventListeners">

                                <map>

                                    <entry key="post-update">

                                        <bean class="com.company.audit.CustomEnversListener">  

                                        </bean>           
                                    </entry>
                                </map>
                            </property>

                     

                    but it didn't work giving error in sessionFactory bean.

                     

                    Thank you again for sharing your knowledge.

                     

                    Best regards,

                     

                    Izabella.

                     

                    I will tru your way (no difference, but ...)

                    • 7. Re: CustomEnversListener and Spring
                      inna1411

                      I made changes as Hernan suggested, but getting an exception :

                       

                       

                      <bean id="enversAuditEventListener" class="com.company.audit.CustomEnversListener"/>

                       

                      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

                      ...

                          <property name="eventListeners">

                              <map>

                                  <entry key="post-update">

                                      <ref bean="enversAuditEventListener" />

                                  </entry>

                              </map>

                          </property>

                      ...

                      </bean>

                       

                       

                       

                      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource

                      [/WEB-INF/conf/application-context.xml]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: com.company.audit.CustomEnversListener

                      Caused by:

                      java.lang.ArrayStoreException: com.company.audit.CustomEnversListener

                              at org.hibernate.cfg.Configuration.setListener(Configuration.java:1722)

                              at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:734)

                      • 8. Re: CustomEnversListener and Spring
                        hernanbolido

                        Hi!

                         

                        I remember this exception from somewhere. Here are some posts about the same problem:

                         

                        http://community.jboss.org/message/527953#527953

                        http://community.jboss.org/message/529020#529020

                         

                         

                        I hope it will be helpful.

                         

                        Regards. Hernán.

                        • 9. Re: CustomEnversListener and Spring
                          inna1411

                          Hi Hernan ! Thank you for links, but looks like my problem is different : I don't work with collections via listener, just simpe fields.

                           

                          But I have a such question : in my CustomRevisionEntity timestamp is long, and in table itself it's bigint. Could this cause the problem ?

                           

                          public class ArrayStoreException
                          extends RuntimeException

                          Thrown to indicate that an attempt has been made to store the wrong type of object into an array of objects. For example, the following code generates an ArrayStoreException:

                               Object x[] = new String[3]; x[0] = new Integer(0); 
                          • 10. Re: CustomEnversListener and Spring
                            inna1411

                            In my pom file I have :

                             

                            <properties>
                                <org.apache.lucene.version>2.4.1</org.apache.lucene.version>   
                                <org.hibernate.version>3.3.1.GA</org.hibernate.version>
                                <org.hibernate.annotations.version>3.4.0.GA</org.hibernate.annotations.version>
                                <org.hibernate.search.version>3.1.0.GA</org.hibernate.search.version>
                                <org.springframework.version>2.0.6</org.springframework.version>
                            </properties>

                             

                             

                                    <dependency>
                                        <groupId>antlr</groupId>
                                        <artifactId>antlr</artifactId>
                                        <version>2.7.6</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>asm</groupId>
                                        <artifactId>asm</artifactId>
                                        <version>2.2.3</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>asm</groupId>
                                        <artifactId>asm-attrs</artifactId>
                                        <version>2.2.3</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>asm</groupId>
                                        <artifactId>asm-commons</artifactId>
                                        <version>2.2.3</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>cglib</groupId>
                                        <artifactId>cglib-nodep</artifactId>           
                                        <version>2.2</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>net.sourceforge.jexcelapi</groupId>
                                        <artifactId>jxl</artifactId>
                                        <version>2.6</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-collections</groupId>
                                        <artifactId>commons-collections</artifactId>
                                        <version>3.2</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-beanutils</groupId>
                                        <artifactId>commons-beanutils</artifactId>
                                        <version>1.7.0</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-dbcp</groupId>
                                        <artifactId>commons-dbcp</artifactId>
                                        <version>1.2.2</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-digester</groupId>
                                        <artifactId>commons-digester</artifactId>
                                        <version>1.8.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-httpclient</groupId>
                                        <artifactId>commons-httpclient</artifactId>
                                        <version>3.0.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-io</groupId>
                                        <artifactId>commons-io</artifactId>
                                        <version>1.4</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-lang</groupId>
                                        <artifactId>commons-lang</artifactId>
                                        <version>2.3</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>commons-pool</groupId>
                                        <artifactId>commons-pool</artifactId>
                                        <version>1.3</version>
                                    </dependency>

                             

                                    <dependency>
                                        <groupId>dom4j</groupId>
                                        <artifactId>dom4j</artifactId>
                                        <version>1.6.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>ehcache</groupId>
                                        <artifactId>ehcache</artifactId>
                                        <version>1.3.0</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>firebirdsql</groupId>
                                        <artifactId>jaybird</artifactId>
                                        <version>2.1.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>hsqldb</groupId>
                                        <artifactId>hsqldb</artifactId>
                                        <version>1.8.0.7</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>com.lowagie</groupId>
                                        <artifactId>itext</artifactId>
                                        <version>1.3.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>jasperreports</groupId>
                                        <artifactId>jasperreports</artifactId>
                                        <version>1.3.4</version>
                                        <exclusions>
                                            <exclusion>
                                                <groupId>commons-digester</groupId>
                                                <artifactId>commons-digester</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>commons-collections</groupId>
                                                <artifactId>commons-collections</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>commons-logging</groupId>
                                                <artifactId>commons-logging</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>com.lowagie</groupId>
                                                <artifactId>itext</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>jfree</groupId>
                                                <artifactId>jcommon</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>jfree</groupId>
                                                <artifactId>jfreechart</artifactId>
                                            </exclusion>
                                            <exclusion>
                                                <groupId>eclipse</groupId>
                                                <artifactId>jdtcore</artifactId>
                                            </exclusion>
                                        </exclusions>
                                    </dependency>
                                    <dependency>
                                        <groupId>javassist</groupId>
                                        <artifactId>javassist</artifactId>
                                        <version>3.8.0.GA</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>javax.transaction</groupId>
                                        <artifactId>jta</artifactId>
                                        <version>1.0.1B</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>javax.persistence</groupId>
                                        <artifactId>persistence-api</artifactId>
                                        <version>1.0</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>javax.servlet</groupId>
                                        <artifactId>servlet-api</artifactId>
                                        <version>2.4</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>joda-time</groupId>
                                        <artifactId>joda-time</artifactId>
                                        <version>1.4</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>json</groupId>
                                        <artifactId>json-lib</artifactId>
                                        <version>2.0</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>json</groupId>
                                        <artifactId>ezmorph</artifactId>
                                        <version>1.0.3</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.acegisecurity</groupId>
                                        <artifactId>acegi-security</artifactId>
                                        <version>1.0.6</version>
                                        <exclusions>
                                          <exclusion>
                                              <groupId>org.springframework</groupId>
                                              <artifactId>spring-core</artifactId>
                                          </exclusion>
                                          <exclusion>
                                              <groupId>org.springframework</groupId>
                                              <artifactId>spring-jdbc</artifactId>
                                          </exclusion>
                                          <exclusion>
                                              <groupId>org.springframework</groupId>
                                              <artifactId>spring-remoting</artifactId>
                                          </exclusion>
                                          <exclusion>
                                              <groupId>org.springframework</groupId>
                                              <artifactId>spring-support</artifactId>
                                          </exclusion>
                                          <exclusion>
                                               <groupId>log4j</groupId>
                                               <artifactId>log4j</artifactId>
                                          </exclusion>
                                        </exclusions>
                                    </dependency>

                             

                                    <!-- Lucene -->

                             

                                    <dependency>
                                        <groupId>org.apache.lucene</groupId>
                                        <artifactId>lucene-core</artifactId>
                                        <version>${org.apache.lucene.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.apache.lucene</groupId>
                                        <artifactId>lucene-queries</artifactId>
                                        <version>${org.apache.lucene.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.apache.wicket.wicket-security</groupId>
                                        <artifactId>swarm</artifactId>
                                        <version>1.4.1</version>
                                    </dependency>
                                   

                             

                                    <!-- Hibernate -->

                             

                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-core</artifactId>
                                        <version>${org.hibernate.version}</version>
                                        <exclusions>
                                          <exclusion>
                                              <groupId>asm</groupId>
                                              <artifactId>asm</artifactId>
                                          </exclusion>
                                          <exclusion>
                                              <groupId>asm</groupId>
                                              <artifactId>asm-attrs</artifactId>
                                          </exclusion>
                                          <exclusion>
                                              <groupId>cglib</groupId>
                                              <artifactId>cglib</artifactId>
                                          </exclusion>
                                        </exclusions>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-annotations</artifactId>
                                        <version>${org.hibernate.annotations.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-commons-annotations</artifactId>
                                        <!--version>3.1.0.GA</version-->
                                        <version>3.3.0.ga</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-search</artifactId>
                                        <version>${org.hibernate.search.version}</version>
                                    </dependency>

                             

                                    <dependency>
                                        <groupId>org.slf4j</groupId>
                                        <artifactId>slf4j-api</artifactId>
                                        <version>1.5.2</version>
                                    </dependency>
                                   
                                    <dependency>
                                        <groupId>org.slf4j</groupId>
                                        <artifactId>slf4j-log4j12</artifactId>
                                        <version>1.5.2</version>
                                    </dependency>

                             

                                    <!-- Hibernate Envers -->
                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-entitymanager</artifactId>
                                        <version>3.4.0.GA</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.hibernate</groupId>
                                        <artifactId>hibernate-tools</artifactId>
                                        <version>3.2.3.GA</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.testng</groupId>
                                        <artifactId>testng</artifactId>
                                        <version>5.8</version>
                                        <scope>test</scope>
                                    </dependency>
                                    <!--dependency>
                                        <groupId>org.hibernate.java-persistence</groupId>
                                        <artifactId>jpa-api</artifactId>
                                        <version>2.0.Beta2</version>
                                    </dependency-->
                                    <dependency>
                                        <groupId>ant</groupId>
                                        <artifactId>ant</artifactId>
                                        <version>1.6.5</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>com.h2database</groupId>
                                        <artifactId>h2</artifactId>
                                        <version>1.2.125</version>
                                        <scope>test</scope>
                                    </dependency>
                                    <dependency>
                                       <groupId>org.jboss.envers</groupId>
                                       <artifactId>jboss-envers</artifactId>
                                       <version>1.2.2.GA-hibernate-3.3</version>
                                    </dependency>

                             

                                    <!-- Spring Framework -->

                             

                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-core</artifactId>
                                        <version>${org.springframework.version}</version>
                                        <exclusions>
                                          <exclusion>
                                              <groupId>cglib</groupId>
                                              <artifactId>cglib</artifactId>
                                          </exclusion>
                                        </exclusions>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-aop</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-beans</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-context</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-dao</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-hibernate3</artifactId>
                                        <version>${org.springframework.version}</version>
                                        <exclusions>
                                          <exclusion>
                                              <groupId>org.hibernate</groupId>
                                              <artifactId>hibernate</artifactId>
                                          </exclusion>
                                        </exclusions>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-ibatis</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-jdbc</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework.ldap</groupId>
                                        <artifactId>spring-ldap</artifactId>
                                        <version>1.2.1</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-mock</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-remoting</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-support</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-web</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-webmvc</artifactId>
                                        <version>${org.springframework.version}</version>
                                    </dependency>
                            • 11. Re: CustomEnversListener and Spring
                              inna1411

                              I found an interesting thread on web :

                               

                              http://webcache.googleusercontent.com/search?q=cache:j_AHzSAf-dAJ:www.javafreedom.org/%3Fp%3D414+java.lang.ArrayStoreException+and+envers&cd=4&hl=en&ct=clnk&gl=us

                               

                              Inside it  :

                               

                              your Custom Event Listener should not appear in the Events, e.g. do not do:

                              <prop key="hibernate.ejb.event.post-update"> org.hibernate.ejb.event.EJB3PostUpdateEventListener,de.xxx.RevListener </prop> 

                              This will lead to an exception like

                              Caused by: org.hibernate.MappingException: Unable to instantiate specified event (post-update) listener class: de.xxx.RevListener at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1766) at org.hibernate.ejb.Ejb3Configuration.setListeners(Ejb3Configuration.java:1550) at org.hibernate.ejb.EventListenerConfigurator.setProperties(EventListenerConfigurator.java:183) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1085) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:685) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) ... 53 more Caused by: java.lang.ArrayStoreException: de.xxx.RevListener at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1763) 
                              • 12. Re: CustomEnversListener and Spring
                                inna1411

                                I tried to check the consistency for jars, and not able to find any conflict. But java.lang.ArrayStoreException persists.

                                 

                                This problem persists only for the listener, created manually. I'm not able to find the problem, so probably will refuse from this nice software.

                                 

                                 


                                • 13. Re: CustomEnversListener and Spring
                                  adamw

                                  Hmm, I think you don't need to create a CustomEnversListener. Just create another completely normal entity (CustomRevisionEntity) and annotate it with @RevisionEntity. No changes in xml config should be needed.

                                   

                                  Adam

                                  • 14. Re: CustomEnversListener and Spring
                                    inna1411

                                    Thanks, Adam, I will try this way. Do I need to register AuditEventListener in this case ?

                                    1 2 Previous Next