Это правильное поведение Списка.Список допускает дублирование объектов, и именно поэтому вам нужен индексированный столбец.
Это общий тип коллекции, который может отображаться с помощью Hibernate:
Set - это коллекция, в которой ни один элемент не встречается более одного раза.По моему опыту, это наиболее распространенный тип постоянных коллекций.
Сумка - это набор, в котором предметы могут встречаться более одного раза: они очень неэффективны, потому что в спящем режиме не могут определить, какие предметы вы положилив него те же, что и в нем (при условии, что они равны), поэтому необходимо удалить всю коллекцию и повторно сохранить ее из памяти.
Список является индексированныммешок.Индекс позволяет hibernate знать, является ли конкретный объект в памяти тем же, что и эквивалентный объект в БД, поэтому полное удаление / повторная вставка не требуется.
Карта это как список, за исключением того, что индекс не должен быть вычисляемым (обычно последовательным) целым числом, это может быть что угодно, даже другой объект.
Так что в вашем случае я рекомендую вам использовать Set.