У меня есть вопрос, связанный с javax.validation.constraints.NotNull annotation
. В моем проекте у меня есть классы дерево, как следующее:@NotNull в подклассе getter влияет на таблицу родительского класса
@Inheritance(strategy = InheritanceType.JOINED)
class Ssss {
@ManyToOne
private Xxxx x;
public Xxxx getXxxx() {
return x;
}
}
@Inheritance(strategy = InheritanceType.JOINED)
class Yyyy extends Ssss {
@Override
//some not important annotations
public Xxxx getXxxx() {
return super.getXxxx();
}
}
@Inheritance(strategy = InheritanceType.JOINED)
class Zzzz extends Ssss {
@Override
//some not important annotations
@NotNull
public Xxxx getXxxx() {
return super.getXxxx();
}
}
Эти три класса хранится в базе данных в виде трех таблиц. Для создания схемы я использую Hibernate
:
hibernate.hbm2ddl.auto=create
Это ожидаемое поведение, Hibernate добавляет NOT NULL
на xxxx_object_id
поля хранится в таблице генерироваться для супер класса ГССЫ как следующее: ??
Я не мог найти любую соответствующую информацию о том, как зимуют лечит @NotNull на унаследованных добытчиками.
Может ли кто-нибудь помочь мне по этому вопросу?
С наилучшими пожеланиями.
Michal
Спасибо за ваш ответ, но вы не совсем правы. Как @PascalThivent писал: «Если свойство вашего объекта аннотируется ** @ NotNull **, его столбцы будут объявлены как не равные нулю в схеме DDL, сгенерированной Hibernate». Посмотрите эту тему: http://stackoverflow.com/questions/3676778/stop-hibernate-from-creating-not-null-constraints После смены hibernate.validator.apply_to_ddl на ** false **, был no ** NOT NULL ** в столбце xxxx_object_id :) – www