@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(). Должен выбрасывать исключение, но не выбрасывает, а всё нормально удаляет (что вообще не должен делать). Что не так?
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ЛАНИТ Омск
от 50 000 до 90 000 руб.
timebook Нижний Новгород
от 120 000 руб.
Litota Labs Ульяновск
от 110 000 руб.
20 февр. 2019, в 23:54
1000 руб./за проект
20 февр. 2019, в 23:26
25000 руб./за проект
20 февр. 2019, в 22:04
500 руб./за проект