Фрагмент потерял анимацию перехода после изменения конфигурации

Bag является неупорядоченной коллекцией и, в отличие от idbag, он не использует дополнительный столбец для хранения каждого индекса элемента.

Нет такой вещи, как вариант использования, когда bag, и idbag не будет. Единственная разница в их эффективности:

  1. Сумки являются наиболее эффективным обратным набором , но они плохо работают для однонаправленных ассоциаций «один ко многим»:

Суммы являются наихудшим случаем, так как они допускают повторяющиеся значения элементов и, поскольку у них нет столбца индекса, первичный ключ не может быть определен. Hibernate не имеет возможности различать повторяющиеся строки. Hibernate разрешает эту проблему, полностью удаляя в одном DELETE и воссоздавая коллекцию всякий раз, когда она изменяется. Это может быть неэффективным.

blockquote>
  1. idbag - это устаревшее отображение гибернации, и они были использованы для предоставления более эффективных альтернативных альтернативных ассоциаций

Вы можете определить семантику idbag с помощью аннотации JPA @OrderColumn :

@OneToMany(mappedBy = "department")
@OrderColumn(name = "index_id")
private List employees;

Таким образом вы можете использовать оба Списки и наборы для упорядочения коллекций.

Итак, старайтесь придерживаться двунаправленных ассоциаций, поскольку они являются наиболее эффективными, и они лучше имитируют отношения с базой данных. Если вам нужна стратегия индекса определенного элемента, используйте ассоциацию @OrderColumn.

30
задан Max 12 January 2012 в 18:22
поделиться