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