【发布时间】:2026-01-25 02:45:01
【问题描述】:
我正在尝试在域类的 @PostPersit 方法中保留其他实体。
由于@PostPersist 方法在域类上,我无权访问任何服务类/entityManager - 为了解决这个问题,我正在使用 ApplicationService(单例),它具有自动装配的服务类:
@PostPersist
public void createNotification() {
Notification n = new Notification();
n.setActivity(this);
ApplicationService.getInstance().sendNotifications(n);
}
ApplicationService 方法只是调用 Autowired 服务类中的一个方法:
public void sendNotifications(Notification n) {
notificationService.distributeNotifications(n);
}
服务类是标准的spring注解服务类,具有创建和持久化新对象的事务方法
@Transactional
public void distributeNotifications(Long accountId, Notification n) {
this.createNotification(n);
...
}
但是,额外的实体永远不会被持久化 - 任何人都可以告诉我上面哪里出了问题吗?我是否误解了 hibernate 中的事务边界?
谢谢。
【问题讨论】:
标签: java hibernate spring persistence