Я пытаюсь сохранить дополнительные сущности в методе @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);
}
Класс обслуживания является стандартным классом обслуживания, аннотированным пружиной, и имеет транзакционный метод, который создает и сохраняет новые объекты
@Transactional
public void distributeNotifications(Long accountId, Notification n) {
this.createNotification(n);
...
}
Однако дополнительная сущность никогда не сохраняется - может кто-нибудь посоветовать, где вышепошло не так?Я неправильно понимаю границы транзакций в спящем режиме?
Спасибо.