Spring MVC, Hibernate 3 и проблема @Valid - PullRequest
3 голосов
/ 17 февраля 2011

У меня есть Spring MVC с JDBC, который использует аннотации @Valid, и все это работает очень хорошо, включая проверку.

Теперь я создал похожее веб-приложение, которое использует Hibernate (вместо JDBC), и до сих пор оно прекрасно работает.

Я решил проверить правильность, прежде чем продолжить работу с другими доменами и т. Д.

Итак, я добавил @ Valid к процессу сохранения в контроллере следующим образом:

@RequestMapping(value = "/productgroup/save", method = RequestMethod.POST)
public String updateProductGroup(**@Valid** ProductGroup productGroup, BindingResult bindingResult) 

Это изменение only , которое я делаю, и теперь оно падает с:

SEVERE: Servlet.service() for servlet appServlet threw exception
java.lang.NoSuchMethodError: javax.persistence.Persistence.getPersistenceUtil()Ljavax/persistence/PersistenceUtil;
    at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:33)
    at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:112)
    at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:47)
    at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:764)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:331)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForRedefinedDefaultGroup(ValidatorImpl.java:278)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:260)
    at org.hibernate.validator.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:213)
    at org.hibernate.validator.engine.ValidatorImpl.validate(ValidatorImpl.java:119)
    at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:86)

Я использую: org.hibernate Зимуют-валидатор 4.0.2.GA яс javax.validation валидация-апи 1.0.0.GA

Я пробовал @NotEmpty как для поля ProductGroup productGroupName, так и для его получателя.

Есть идеи?

Я действительно никогда не ожидал каких-либо проблем здесь, так как у меня не было проблем с получением проверки для работы в моей версии JDBC ...

1 Ответ

3 голосов
/ 17 февраля 2011

Hibernate Validator имеет необязательную зависимость от JPA, но когда JPA присутствует в пути к классам, Hibernate Validator 4 требует, чтобы он был JPA 2.0.В вашем случае у вас есть JPA 1.0 в classpath.

Другими словами, Hibernate Validator 4 совместим с Hibernate 3.5 или выше.Для более старой версии Hibernate см. Матрица совместимости Hibernate .

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