有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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" />

共 (2) 个答案

  1. # 1 楼答案

    我使用Hibernate注释,这里的技巧是将字段定义为List实现,如ArrayList。然后(就像实现Serializable的任何其他类一样——我猜是这样)Hibernate将其作为bytea存储在数据库中

    当然,列表应该只包含实现Serializable的元素

  2. # 2 楼答案

    我不确定是否可以直接序列化列表,但如果不能,可以为列表创建一个包装器对象并将其声明为大对象(不知道xml变量,但它是@Lob注释)。这应该自动序列化,因为它不是字符串,因此不是clob,而是blob