Этот ответ был сделан до реализации JPA2, если вы используете JPA2, см. Ответ ElementCollection выше:
Списки объектов внутри модельного объекта обычно рассматриваются как отношения "OneToMany" с другим объектом. Однако строка (сама по себе) не является допустимым клиентом отношения «один ко многим», так как не имеет идентификатора.
Таким образом, вы должны преобразовать свой список строк в список объектов JPA класса Argument, содержащих идентификатор и строку. Вы можете потенциально использовать String в качестве идентификатора, что сэкономит немного места в вашей таблице как от удаления поля ID, так и за счет объединения строк, в которых строки равны, но вы потеряете возможность упорядочить аргументы обратно в их первоначальный порядок. (поскольку вы не сохранили информацию для заказа).
Кроме того, вы можете преобразовать свой список в @Transient и добавить другое поле (argStorage) в свой класс, которое будет либо VARCHAR (), либо CLOB. Затем вам нужно будет добавить 3 функции: 2 из них одинаковы и должны преобразовать ваш список строк в одну строку (в argStorage), разделенную таким образом, чтобы вы могли легко разделить их. Аннотируйте эти две функции (каждая из которых выполняет одно и то же) с помощью @PrePersist и @PreUpdate. Наконец, добавьте третью функцию, которая снова разбивает argStorage в список строк и аннотируйте ее @PostLoad. Это будет держать ваш CLOB обновленным со строками всякий раз, когда вы сохраняете Команду, и обновлять поле argStorage до того, как сохранить его в БД.
Я все еще предлагаю сделать первый случай. Это хорошая практика для настоящих отношений позже.