Hibernate - нет обновлений на PersistentSet - PullRequest
1 голос
/ 10 апреля 2011

Я использую стандарт JPA 2.0 и спящий режим в качестве поставщика сохраняемости.При работе с ElementCollections мне любопытно узнать, почему org.hibernate.collection.PersistentSet не может быть обновлен?

Метод isRowUpdatePossible () в PersistentSet возвращает false.По сравнению с PersistentList, которые являются обновляемыми, Set выполняет несколько удалений и вставок, а не просто обновление.

Например, рассмотрим мою сущность, имеющую Набор, который в настоящее время имеет значения {1, 2, 3}.Я обновляю набор, очищая его, а затем добавляя {4, 5, 6}.При вызове entityManager.merge (entity) 3 выполняются запросы на удаление и вставку.

Если в приведенном выше примере я использую список, то только один запрос на обновление запускается со значениями связывания.

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

Подводя итоги вопросов

  1. Почему org.hibernate.collection.PersistentSet не обновляется?Метод isRowUpdatePossible () в PersistentSet возвращает false.
  2. Является ли List лучше, чем Set, если база данных может позаботиться о дубликатах?

Мы будем признательны за эти вопросы.

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