2014-09-02 9 views
1

Я понимаю, что Аннотации Hibernate делятся на 2 категории:.Hibernate DDL v Validator аннотаций

  • только вступит в силу, если Hibernate DDL включен (означает, что Hibernate может создавать/обновлять/удалять схемы БД
  • Hibernate Validator использует их

В этой полезной answer, Pascal Thivent объясняет разницу между @Column и @Size.

Как я понимаю, Hibernate Validator, их аннотации вступят в силу независимо от того, включен ли DDL или нет.

Пожалуйста, подтвердите/отклоните мое понимание аннотаций, а также влияние Hibernate Validator на включение/отключение DDL.

ответ

1

Валидатор будет работать, даже если DDL не был сгенерирован спящим режимом. Аннотации, несмотря на совпадение семантически, разные.

Это на практике отражает две различные проверки: одна - проверка подлинности компонента, выполняемая в вашем приложении, другая - проверка базы данных, выполняемая db.

Например, свойство с @Size (max = 50) и @Column (length = 40) проведет проверку на стороне приложения fir длиной 45, но сбой SQL с ошибкой в ​​базе данных DDL говорит, что столбец VARCHAR (40). Это избыточно и обычно бесполезно, но может помочь вам понять.

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