Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠更新事件与保存事件_Java_Hibernate - Fatal编程技术网

Java 休眠更新事件与保存事件

Java 休眠更新事件与保存事件,java,hibernate,Java,Hibernate,我将Hibernate与Spring一起使用,我想知道如何使用save或update事件侦听器与save-update事件侦听器 我的配置如下所示: <property name="eventListeners"> <map> <entry key="save-update"> <list> <bea

我将Hibernate与Spring一起使用,我想知道如何使用save或update事件侦听器与save-update事件侦听器

我的配置如下所示:

<property name="eventListeners">
            <map>
                <entry key="save-update">
                    <list>
                        <bean class="com.test.MyTestSaveOrUpdateEventListener" />
                        <bean class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener" />
                    </list>
                </entry>
                <entry key="save">
                    <list>
                        <bean class="org.hibernate.event.def.DefaultSaveEventListener" />
                        <bean class="com.test.MyTestSaveEventListener" />
                    </list>
                </entry>
                <entry key="update">
                    <list>
                        <bean class="org.hibernate.event.def.DefaultUpdateEventListener" />
                        <bean class="com.test.MyTestUpdateEventListener" />
                    </list>
                </entry>
            </map>

        </property>

问题是只调用MyTestSaveOrUpdateEventListener bean

它真的是这样工作的吗:

<property name="eventListeners">
            <map>
                <entry key="save-update">
                    <list>
                        <bean class="com.test.MyTestSaveOrUpdateEventListener" />
                        <bean class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener" />
                    </list>
                </entry>
                <entry key="save">
                    <list>
                        <bean class="org.hibernate.event.def.DefaultSaveEventListener" />
                        <bean class="com.test.MyTestSaveEventListener" />
                    </list>
                </entry>
                <entry key="update">
                    <list>
                        <bean class="org.hibernate.event.def.DefaultUpdateEventListener" />
                        <bean class="com.test.MyTestUpdateEventListener" />
                    </list>
                </entry>
            </map>

        </property>
  • 使用“saveOrUpdate”生成保存更新事件
  • 使用“save”生成save事件
那么更新事件是什么时候生成的呢?我特别想得到更新事件,但它似乎从来没有被调用


提前感谢您

猜测:何时调用
update()
?我的问题可能是,为什么不保存或更新生成更新事件?因为在这个项目中,我们不单独使用“更新”功能(我们只使用saveOrUpdate),但我们希望单独记录更新。然后为saveOrUpdate注册您的事件侦听器,因为这是您使用的。并重写适当的方法(entityIsTransient、entityIsPersistent等),或使用getEntityState()了解实体的状态。javadoc和源代码都是可用的。