Я недавно работал над API, использующим Spring boot с spring-data-jpa.Я использовал аннотации jsr303 с валидатором hibernate для проверки моих dtos в моих запросах API перед их сопоставлением с сущностью JPA.
Я также использовал те же аннотации средства проверки гибернации для своей сущности JPA, чтобы проверять при передаче сущности в хранилище jpa данных Spring для ее сохранения.
Большинство этих проверок используют jpa-репозиторий данных Spring для проверки чего-либо вроде того, находится ли переданное значение в определенном списке в базе данных.Недавно мне сказали, однако, что использование EntityManager во время жизненного цикла jpa (проверка) не поддерживается, и я столкнулся с ошибками с ним, см. Средство проверки Hibernate, приводящее к тому, что отношения многие ко многим не сохраняются
Я получил ответ, что это «странная» идея использовать эти аннотации для проверки сущности на уровне постоянства.Мой вопрос будет, где я должен сделать проверку моей сущности?Как я уже сказал, у меня есть проверка на моем уровне API отдыха, но я не хочу просто предполагать, что я правильно построил сущность в коде, не связанном с уровнем отдыха.
Один вариант, который я собирался попробовать, - это использовать аннотации JSR для сущности, но проверить их в моих методах уровня обслуживания с помощью @Valid.Проблема в том, что EntityManager все равно попытается проверить эти аннотации, и я не могу найти способ заставить их игнорировать их.
Я действительно не хочу реализовывать всю свою проверку вручную, когда jsr303аннотации работают хорошо ...