通常我们通过hibernate映射将List存储在数据库中:
<list name="userItems" cascade="all" lazy="false">
<key column="user_date_id"/>
<index column="idx"/>
<one-to-many class="UserItem"/>
</list>
还有其他方法吗?我们可以将它存储为Seializable对象吗?像:
<property name="list" column="list" type="serializable" />
答案 0 :(得分:3)
我使用Hibernate Annotiations,这里的技巧是将您的字段定义为List
实现,如ArrayList
。然后(就像实现Serializable
的任何其他类一样 - 我猜)Hibernate将它作为bytea
存储在数据库中。
当然,列表应该只包含实现Serializable
的元素。
答案 1 :(得分:1)
我不确定你是否可以直接序列化列表,但如果没有,你可以为列表创建一个包装器对象并将其声明为大对象(不知道xml变体,但它是@Lob
注释)。这应该自动序列化,因为它不是一个字符串,因此不是clob而是blob。