当前位置: 首页 > 知识库问答 >
问题:

Hibernate侦听器onSave和onLoad方法返回null

呼延晋
2023-03-14

我重写Hibernate EmptyInterceptor来捕获一些属性字段以进行一些装饰。

公共类MyEntityInterceptor扩展了访问

保存前和读取时的字段。我的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);
}

共有1个答案

仉伟兆
2023-03-14

对象初始化之前调用的onLoad方法。请参阅API。

http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Interceptor.html.实体将是

类的未初始化实例为空。这就是您获得空输出的原因。你的方式

捕获属性不正确。对象[]状态,字符串[]属性名称是关键

如果要处理传递的参数,则应使用参数。该州附带

值和属性名称列表表示字段列表。请迭代状态[]数组,

然后你会得到期望值。如果你需要进一步的帮助,请告诉我。

 类似资料:
  • 我有一个简单的HibernateInterceptor,基本上我想自动设置几个字段。此拦截器(如下所示)扩展了EmptyInterceptor: 我使用spring配置文件进行布线,如下所示: 但是,永远无法到达拦截器。有人有什么线索吗?我还尝试将以下内容添加到事务管理器bean定义中,如下所示:

  • 问题内容: 如何启用处理JPA回调的Hibernate事件侦听器? 当前,我正在将Hibernate 4与SessionFactory配置一起使用,但是当我保留一个对象时,JPA回调无法正常运行。 任何建议都是最欢迎的。 源代码 临时实体类: TempVal类: MainClass类: Hibernate配置: 程序输出 程序输出如下: 预期的输出将是: 问题答案: 这个问题基本上是一样的。 事实

  • 我们有web服务(jaxws),它正在调用另一个web服务(aslo jaxws)。Jaxws客户端配置如下所示-- 正如您所看到的,我们有两个拦截器和一个故障侦听器。我们希望在这些拦截器、故障侦听器和web服务代码之间进行通信。正如SO线程中所述,我们使用cxf交换对象在web服务和拦截器之间进行通信。 我们的inFaultInterceptor代码如下所示-- } Web服务代码如下所示- 但

  • 我已经用spring boot实现了jms,我正在使用@JmsListener来听这个主题 现在,我需要一个侦听器来侦听阻塞队列,如果它有值,则进行处理。我们可以在spring boot中使用注释来实现这一点吗?

  • 问题内容: 我当时在上网,但找不到很好的信息。我试图在每次运行应用程序时检测按键。我正在使用JavaFX并将其与FXML一起运行。我尝试了很多事情,但没有任何效果。请帮我。 问题答案: 您应该签出Ensemble示例。这是关键的侦听器代码。

  • 我正在使用Realex Payments的HPP API开发一个卡支付页面,其中包含一个iFrame,用于托管Realex页面。在Realex请求表单上,我将字段HPP_POST_维度和HPP_POST_响应设置为我的URL,如下所示: 付款页: www.example.com/account/payment.html 隐藏字段值用于在HPP页面大小更改和事务完成时,使用事件侦听器将数据从Real