我重写Hibernate EmptyInterceptor来捕获一些属性字段来做一些装饰。
公共类MyEntityInterceptor扩展EmptyInterceptor 我需要访问
保存前和阅读时的字段。我的onSave和onLoad方法如下。但是我的
实体字段返回null。请告诉我您的反馈意见以及我在这里缺少什么?
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);
}
答案 0 :(得分:0)
在初始化对象之前调用的onLoad方法。请参阅API。
http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Interceptor.html。实体将是
清空类的未初始化实例。这就是你得到空输出的原因。你的方式
捕获属性不正确。 Object [] state,String [] propertyNames是键
如果要处理传递参数,应使用参数。
来了值列表和属性名称表示字段列表。请迭代state []数组,
然后你会得到预期的价值。如果您需要进一步的帮助,请告诉我。