Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 如何在Hibernate中为数据库更改添加侦听器?_Java_Sql_Hibernate_Servlets - Fatal编程技术网

Java 如何在Hibernate中为数据库更改添加侦听器?

Java 如何在Hibernate中为数据库更改添加侦听器?,java,sql,hibernate,servlets,Java,Sql,Hibernate,Servlets,如何在Hibernate中为行更改(如插入、更新、删除)添加侦听器。您可以使用。下面是一个记录更新的示例(直接取自Hibernate文档): 但这只适用于同一应用程序内的更改。其他更改未被跟踪。如果需要,应该使用数据库触发器。可以使用。下面是一个记录更新的示例(直接取自Hibernate文档): 但这只适用于同一应用程序内的更改。其他更改未被跟踪。如果需要,您应该使用数据库触发器。您可以使用JPA侦听器@PostUpdate,@PostPersist,@PostRemove(这些可以跨ORM框架

如何在Hibernate中为行更改(如插入、更新、删除)添加侦听器。

您可以使用。下面是一个记录更新的示例(直接取自Hibernate文档):

但这只适用于同一应用程序内的更改。其他更改未被跟踪。如果需要,应该使用数据库触发器。

可以使用。下面是一个记录更新的示例(直接取自Hibernate文档):


但这只适用于同一应用程序内的更改。其他更改未被跟踪。如果需要,您应该使用数据库触发器。

您可以使用JPA侦听器
@PostUpdate
@PostPersist
@PostRemove
(这些可以跨ORM框架移植),您可以查找JPA规范

调用PostPersist和postRemove回调方法用于 实体被持久化或删除后的实体。这些 回调也将在所有实体上调用,这些实体将被调用 操作是级联的


您可以使用JPA监听器
@PostUpdate
@PostPersist
@PostRemove
(这些监听器可以跨ORM框架移植),并且可以查找JPA规范

调用PostPersist和postRemove回调方法用于 实体被持久化或删除后的实体。这些 回调也将在所有实体上调用,这些实体将被调用 操作是级联的

看一看
public static class LoggingInterceptor extends EmptyInterceptor {
    @Override
    public boolean onFlushDirty(
        Object entity,
        Serializable id,
        Object[] currentState,
        Object[] previousState,
        String[] propertyNames,
        Type[] types) {
            LOGGER.debugv( "Entity {0}#{1} changed from {2} to {3}",
                entity.getClass().getSimpleName(),
                id,
                Arrays.toString( previousState ),
                Arrays.toString( currentState )
            );
            return super.onFlushDirty( entity, id, currentState,
                previousState, propertyNames, types
        );
    }
}