Как я могу сохранить это поле псевдонимов через JPA?
JPA 1.0 не поддерживает коллекции базовых типов, поэтому вам придется либо:
- Представьте сущность и отобразите ее как
@OneToMany
~ или ~
- Получите ваш
Set
, сохраненный в BLOB (как Serializable
) ~ или ~
- Отметьте его
@Transient
и используйте другой метод получения / установки, чтобы сохранить его, используя пользовательское представление строки (используя разделитель) ~ или ~ *
- Используйте расширение вашего провайдера JPA, поддерживающее набор базовых типов (например, Hibernate имеет аннотацию
@CollectionOfElements
).
Решение № 1 будет самым чистым портативным решением. Решение № 2 может привести к некоторым проблемам при обновлении. Решение № 3 - ужасный обходной путь для № 2. Решение № 4 чистое, но не переносимое.
В JPA 2.0 имеется аннотация @ElementCollection
для этого варианта использования (это, конечно, идеальное решение).
Как это поле хранится в базе данных
В зависимости от выбранной реализации, он может быть в BLOB, в VARCHAR, в другой таблице.