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 当Hibernate保存对象时,如何让对象执行内部代码?_Java_Hibernate - Fatal编程技术网

Java 当Hibernate保存对象时,如何让对象执行内部代码?

Java 当Hibernate保存对象时,如何让对象执行内部代码?,java,hibernate,Java,Hibernate,下面的代码保存了objA A objA = new A(); session.save(objA); 调用session.save(A)时,我希望我的A对象执行一个内部方法/函数: onSave() { this.b = some code; } 我可以把密码放在哪里?是否有实际的onSave()方法,或要实现的接口或要扩展的抽象类?您可以使用Hibernate拦截器org.Hibernate.interceptor及其onSave 您可以使用。完成此操作,这也在官方的Hibernate

下面的代码保存了objA

A objA = new A();
session.save(objA);
调用
session.save(A)
时,我希望我的
A
对象执行一个内部方法/函数:

onSave() {
  this.b = some code;
}

我可以把密码放在哪里?是否有实际的
onSave()
方法,或要实现的接口或要扩展的抽象类?

您可以使用Hibernate拦截器
org.Hibernate.interceptor
及其
onSave


您可以使用。

完成此操作,这也在官方的Hibernate API中:。你指的是一个非常旧的Hibernate版本。(啊,你已经编辑了你的答案。)@Jesper谢谢你指出这一点(+1)。我刚刚更新了答案。是否每次调用session.save(obj)时都调用onSave()?但我希望它仅在保存A类obj时调用。在php或python中,有一种简便的方法,可以在类a中编写重写方法。
boolean onSave(
    Object entity, 
    Serializable id, 
    Object[] state, 
    String[] propertyNames, 
    Type[] types)