Какой из следующих типов коллекций вы используете в своей модели домена JPA и почему:
-
java.util.Collection
-
java.util.List
-
java.util.Set
Мне было интересно, существуют ли для этого некоторые основные правила.
UPDATE Я знаю разницу между Set
и List
. A List
позволяет дублировать и имеет порядок, а Set
не может содержать повторяющиеся элементы и не определяет порядок. Я задаю этот вопрос в контексте JPA. Если вы строго следуете определению, то вы всегда должны использовать тип Set
, поскольку ваша коллекция хранится в реляционной базе данных, где вы не можете иметь дубликаты и где вы сами определяете заказ, то есть порядок в вы Java List
не обязательно сохраняются в БД.
Например, большую часть времени я использую тип List
, а не потому, что он имеет порядок или позволяет дубликаты (что я не могу сделать в любом случае), потому что некоторые из компонентов в моей библиотеке компонентов требуют список.