我试图在域类的@PostPersit
方法中保留其他实体。
由于@PostPersist
方法在域类上,我无法访问任何服务类/ entityManager - 为了解决这个问题,我使用的是ApplicationService(singleton),它具有自动装配的服务类:
@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中的事务边界?
感谢。
答案 0 :(得分:0)
原因可能在于您自己创建单身人士?不应该是spring创建实例,以便它解释@Transactional注释吗?