我正在从事的项目使用 Hibernate 来实现持久性。
该项目分为子项目,其中四个与此处相关:
- 消息域
- 用户服务
- 消息服务
- 个案服务
Message 实体(在 user-dom 中)包含一个String userID
字段和一个@Transient String userName
字段。另一个实体 Case 与 Message 具有 OneToOne 关系。问题如下:
- 每次我们加载消息时(直接在消息服务中,或者通过在案例服务中加载案例间接),我们需要设置它的 userName 字段。
- 通过调用用户服务检索用户名。
- 不能从 message-dom 调用用户服务(出于依赖性原因)。
我已经看到实体有一个 @PostLoad 注释,但显然这些在这里没有帮助,因为我们无法从实体调用服务。目前我们手动进行服务调用,但这很容易出错(尤其是在案例中间接加载消息时)。
我们如何确保每次加载 Message 实体时都设置该字段?