Сохранение дополнительных сущностей в @PostPersist в Hibernate - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь сохранить дополнительные сущности в методе @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);
    ...
}

Однако дополнительная сущность никогда не сохраняется - может кто-нибудь посоветовать, где вышепошло не так?Я неправильно понимаю границы транзакций в спящем режиме?

Спасибо.

1 Ответ

0 голосов
/ 30 ноября 2011

Причина, вероятно, заключается в том, что вы сами создаете синглтон?Не должно ли быть весной создание экземпляра, чтобы он интерпретировал аннотацию @Transactional?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...