2013-04-26 2 views
1

Я конвертирую проект в JPA2.0 с внедрением hibernate и JSF2.0. В старом проекте есть некоторые аннотации, такие как @Length (min = 3) и @NotNull, которые импортируются из org.hibernate.validator.Length; и org.hibernate.validator.NotNull;различные валидации в JPA

В новом проекте у меня есть два варианта. Первый выбор, я все еще могу использовать @Length (min = 3), но с небольшим разным импортом из org.hibernate.validator.constraints. ; (не работает со старым импортом из org.hibernate.validator.Length). второй вариант, я могу преобразовать их в @Size (min = 3) и @NotNull и использовать импорт javax.validation.constraints.;

может кто-то сказать мне о тезисах различной валидация (@Length @Size @NotNull) из этих импортированных файлов org.hibernate.validator. * org.hibernate.validator.constraints. ; javax.validation.constraints.;

Я смущаю, какой из них принадлежит к реализации и версии, и какой из них я должен использовать для этого.

ответ

0

Начиная с версии 4 и более поздней версии, Hibernate Validator является эталонной реализацией спецификации проверки боба (JSR 303/349). Ограничения, определенные в javax.validation.constraints (@Size, @NotNull и т. Д.), Определяются этой спецификацией и переносятся между поставщиками проверки Bean, такими как Hibernate Validator.

Hibernate Validator 4.x все еще обеспечивает @Length ограничение для упрощения миграции с версии 3.х, но если вы предпочитаете только использовать стандартизированный API, вы должны пойти на @Size и т.д.

+0

Спасибо за ваш ответ, как я понять, что JPA и beans validation являются спецификациями, а проверка Hibernate и Hibernate является эталонной реализацией. для меня все еще остается неясная часть, когда я использую javax.validation.constraints, которые ссылаются на реализацию, это значит? как насчет org.hibernate.validator (эта ссылочная реализация). если вторая является реализацией спящего режима, которая является первой? – Yashar

+1

JPA - спецификация в области настойчивости. Hibernate ORM - это одна реализация, но не эталонная реализация (которая является EclipseLink). Проверка бина - это спецификация в области проверки, причем Hibernate Validator является эталонной реализацией. Пакет 'javax.validation.constraints' и его типы определяются спецификацией проверки Bean, в то время как соответствующие средства проверки ограничений предоставляются реализацией, такой как Hibernate Validator. Отвечает ли это на ваш вопрос? – Gunnar

Смежные вопросы