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