@MaxLich
java developer

Почему у меня не работает аннотация @PreRemove?

Пишу интеграционные тесты для сервисов с базой в памяти (h2). Сервисы не содержат никакой логики и просто вызывают аналогичные методы у ДАО. Также на сервисах стоят аннотации @Transactional (на уровне классов). Методы для чтения в сервисах помечены аннотациями @Transactional(readOnly = true). Сейчас тестирую сервис для работы со справочником. Сама сущность справочника помечена аннотациями: @Entity, @Immutable, @EntityListeners(PreventAnyUpdate.class).

public class PreventAnyUpdate {
    @PrePersist
    void onPrePersist(Object o) {
        throw new RuntimeException("Can't create Entity!");
    }

    @PreRemove
    void onPreRemove(Object o) {
        throw new RuntimeException("Can't delete Entity");
    }
}


Все тесты проходят, кроме тестов для delete(). Должен выбрасывать исключение, но не выбрасывает, а всё нормально удаляет (что вообще не должен делать). Что не так?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы