У меня есть список под-значений для класса в Hibernate. Моя первоначальная реализация была Set, но она возвращает значения в том, что по сути является «порядком базы данных» (вероятно, на основе кластерного индекса, который является почти порядком размещения).Каков наилучший способ заказа коллекций в Hibernate?
Я посмотрел на переключение на список, поэтому я добавил a, но я быстро столкнулся с проблемой, когда в возвращаемых java-списках были возвращены нули. Некоторые из моих данных написаны Hibernate, но некоторые из них также написаны сценариями SQL.
Что мне нужно, это атрибут sortOrder, который не привязан к позиции в списке, так что если есть дублированный то есть {1, 3, 3, 10}, он соответствующим образом отображается на {0, 1 , 2, 3}, где порядок 2-го и 3-го пунктов возвращается к порядку базы данных. Нулеки также прекрасны, и мне все равно, попадают ли они на передний или задний список (пока поведение несовместимо).
Я посмотрел на Сумку, но я не был уверен, как получить атрибут sortOrder в определении, и я был немного обеспокоен тем, что он допускает дубликаты. Мне все же хотелось бы иметь те же ограничения, что и я, когда у меня был Set (я считаю, что родительский/дочерний кортеж всегда был уникальным).
Предложения? Могу ли я настроить пакет, чтобы заставить его действовать как List с sortOrder, а не List с индексом? Что еще мне нужно сделать, чтобы защитить код от зависания данных, введенных непосредственно SQL?
Есть состояние гонки между время видимости строк и время обновления триггера? После создания схемы, я думаю, вы используете SQL для добавления триггера? –
Я использовал сервер sql, и триггер был частью процесса trasaction, поэтому не будет проблем с синхронизацией. Триггер был вызван в sql и был просто добавлен как триггер обновления в таблице, который был isssue. Этот способ очень чист и останавливает все нули от попадания в вашу позицию colum. –
Я обязательно это рассмотрю, но до сих пор я агностик базы данных, поэтому я бы предпочел найти 100% -ное решение Hibernate. Вы вообще играли с Bags? –