Hibernate拦截器onSave和onLoad方法返回null
我重写Hibernate EmptyInterceptor来捕获一些属性字段以进行一些修饰 公共类MyEntityInterceptor扩展EmptyInterceptor我需要访问 保存前和读取时的字段。我的onSave和onLoad方法如下。但是我的 实体字段返回null。请让我知道你的反馈,我在这里遗漏了什么Hibernate拦截器onSave和onLoad方法返回null,hibernate,Hibernate,我重写Hibernate EmptyInterceptor来捕获一些属性字段以进行一些修饰 公共类MyEntityInterceptor扩展EmptyInterceptor我需要访问 保存前和读取时的字段。我的onSave和onLoad方法如下。但是我的 实体字段返回null。请让我知道你的反馈,我在这里遗漏了什么 public boolean onLoad(Object entity,Serializable id, Object[] state,String[] propertyNames,
public boolean onLoad(Object entity,Serializable id, Object[] state,String[] propertyNames, Type[] types)
throws CallbackException{
Persistable entity = (Persistable) entity;
System.out.println("===============>"+entity.getCreatedBy());//returns null
return true;
}
public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) {
if (entity instanceof IPersistable) {
IPersistable entity = (IPersistable) entity;
System.out.println("Created By=================>"+((IPersistable) entity).getCreatedBy());//Returns null
}
return (true);
}
在初始化对象之前调用的onLoad方法。请参阅API 。实体将是一个 类的未初始化实例为空。这就是您获得空输出的原因。你的方式 捕获属性不正确。对象[]状态、字符串[]属性名称是键 如果要处理传递的参数,则应使用参数。国家也有责任 值列表和属性名称表示字段列表。请迭代状态[]数组 然后,您将看到预期值。如果你需要进一步的帮助,请告诉我