Java 加载hibernate实体时始终调用方法
我正在从事的项目使用Hibernate进行持久化 本项目分为四个子项目,其中四个子项目与此相关:Java 加载hibernate实体时始终调用方法,java,hibernate,Java,Hibernate,我正在从事的项目使用Hibernate进行持久化 本项目分为四个子项目,其中四个子项目与此相关: 消息dom 用户服务 消息服务 个案服务 消息实体(在用户dom中)包含一个字符串userID字段和一个@临时字符串userName字段。另一个实体Case与Message具有OneToOne关系。问题如下: 每次加载消息时(直接在消息服务中加载,或通过在案例服务中加载案例间接加载),我们都需要设置其用户名字段 通过调用用户服务检索用户名 无法从消息dom调用用户服务(由于依赖关系) 我已经
- 消息dom
- 用户服务
- 消息服务
- 个案服务
字符串userID
字段和一个@临时字符串userName
字段。另一个实体Case与Message具有OneToOne关系。问题如下:
- 每次加载消息时(直接在消息服务中加载,或通过在案例服务中加载案例间接加载),我们都需要设置其用户名字段
- 通过调用用户服务检索用户名
- 无法从消息dom调用用户服务(由于依赖关系)
如何确保每次加载消息实体时都设置该字段?在所有部分都集中在一起的最终应用程序中,实现org.hibernate.event.PostLoadEventListener并通过xml添加它
<hibernate-configuration>
<session-factory>
...
<event type="load">
<listener class="com.eg.MyPostLoadListener"/>
<listener class="org.hibernate.event.def.DefaultPostLoadEventListener"/>
</event>
</session-factory>
</hibernate-configuration>
实现Postload事件并将其注册到配置中object@Firo:请你详细说明一下好吗?这似乎是正确的方向,但我不知道config对象是什么+1。只是:投票支持
xml
configuration以支持以后更容易的扩展
Configuration cfg = new Configuration();
PostLoadEventListener[] stack = { new MyPostLoadListener(), new DefaultPostLoadEventListener() };
cfg.EventListeners().setPostLoadEventListeners(stack);