Порядок удаления для содержащихся @OneToMany членов - PullRequest
1 голос
/ 10 ноября 2010
@Entity public class Organization {

@OneToMany 
List<A> Aobjects;


@OneToMany 
List<B> Bobjects;


@OneToMany 
List<C> Cobjects;

}

У меня есть аннотация @OnDelete для всех участников @OneToMany.Каков будет порядок удаления этих объектов при удалении родительского объекта.Можно ли предположить, что это будет порядок, в котором объекты объявлены.

1 Ответ

1 голос
/ 11 ноября 2010

У меня есть аннотация @OnDelete для всех участников @OneToMany.Каков будет порядок удаления этих объектов при удалении родительского объекта.Можно ли предположить, что это будет порядок, в котором объекты объявляются.

Поэтому вы используете SQL-каскадное удаление при удалении вместо обычного механизма Hibernate.Поскольку вы используете механизм базы данных, я испытываю желание сказать, что порядок, в котором объявляются объекты, не имеет значения (база данных просто не знает об этом порядке), и я бы просто ожидал, что база данных будет обрабатывать вещи соответствующим образом.

Это может повлиять на порядок столбцов, если вы генерируете модель из аннотаций, но:

  • Я был бы очень удивлен, если бы это оказало какое-либо влияние, которое сделало бы все чрезвычайно хрупким, непригодный для использования.
  • Hibernate / JPA ничего не говорит о порядке столбцов (поскольку это не должно иметь значения, см. выше).

Но я столкнулся сНемного проблем, если B inturn имеет ссылку внешнего ключа на A, что приводит к сбою A при удалении

Следует отметить, что в вопросе это очень важно IMO.Возьмите мой ответ с небольшим количеством соли, но, как я уже сказал, я ожидаю, что ядро ​​базы данных будет обрабатывать вещи должным образом, ядро ​​базы данных имеет все необходимые метаданные для этого.Но я не эксперт по базам данных, я не уверен, что говорит теория.

Может быть, стоит взглянуть на такие вопросы, как:

Или задайте вопрос о теории (и практике для данного движка).

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