Spring 3.0.2, Hibernate 3.5.0, Hibernate-валидатора 4.0.2.GA-303 JSR инъекции зависимостей и Hibernate
Я пытаюсь внедрить зависимости Spring в ConstraintValidator с помощью:
@PersistenceContext
private EntityManager entityManager;
Я настроил контекст приложения с:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
Который, согласно документации Spring, должны позволить «обычай ConstraintValidators, чтобы извлечь выгоду из инъекции зависимостей, как и любой другой весенний боб "
Внутри отладчика я вижу Spring, вызывающий getBean, для создания ConstraintValidator. Позже, когда flush запускает preInsert, создается и вызывается другой ConstraintValidator. Проблема заключается в том, что EntityManager имеет значение null в этом новом ConstraintValidator. Я попытался ввести другие зависимости в ConstraintValidator, и они всегда равны нулю.
Кто-нибудь знает, можно ли вводить зависимости в ConstraintValidator?
'<проверка режима> NONE валидация режим>' делает трюк. И вам даже не нужно вызывать валидаторы вручную. Spring проверяет валидатор на Hibernate Validator. С Hibernate Validator 4.1 У меня была проблема, что внезапно все сущности были проверены дважды. Один раз через весну (с автоподготовкой) и один раз через HV (неудачный, потому что не автоуведомленный). Он работал с Hibernate Validator 4.0. – Koraktor
, а также установите для параметра "javax.persistence.validation.mode" значение "none". – Matt