我在一个aliases
中有java.util.Set
类型的字段Entity
。此Set
不表示与实体的任何关系。
如何通过JPA存储此aliases
字段?
此字段如何存储在数据库中?我认为对于数据库来说,这个字段是一个多值属性。
答案 0 :(得分:7)
如何通过JPA存储此别名字段?
JPA 1.0不支持基本类型的集合,因此您必须:
@OneToMany
〜或〜Set
存储在BLOB中(作为Serializable
)〜或〜@Transient
并使用另一个getter / setter来使用自定义字符串表示(使用分隔符)来存储它〜或〜@CollectionOfElements
注释)。解决方案#1将是最干净的便携式解决方案。解决方案#2可能会导致一些升级问题。解决方案#3是#2的丑陋变通方法。解决方案#4干净但不便携。
在JPA 2.0中,此用例有@ElementCollection
注释(这当然是理想的解决方案)。
此字段如何存储在数据库中
根据所选的实现,它可能位于另一个表中的BLOB,VARCHAR中。