使用Hibernate映射ArrayList

Mar*_*sse 1 java database hibernate

我刚刚编写了我的第一个Hibernate示例.

数据库连接工作,我理解如何将字符串从POJO映射到数据库字段:

private String firstName;
Run Code Online (Sandbox Code Playgroud)

并在映射文件中:

<property name="firstName" type="java.lang.String">
    <column name="FIRSTNAME" />
</property>
Run Code Online (Sandbox Code Playgroud)

但是如何将ArrayList映射到数据库?可以理解来自映射xml文件的简单示例.

干杯

UPDATE

我切换到List而不是ArrayList找到了一个例子.现在我映射如下:

    <list name="test" inverse="false" table="CONTACT" lazy="true">
        <key>
            <column name="ID" />
        </key>
        <list-index></list-index>
        <element type="java.lang.String">
            <column name="TEST" />
        </element>
    </list>
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到一个我不明白的例外:

Exception in thread "main" org.hibernate.MappingException: Foreign key (FK6382B0003257FF7F:CONTACT [ID])) must have same number of columns as the referenced primary key (CONTACT [ID,idx])
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

干杯

Vin*_*nie 6

我注意到您正在使用XML来映射您的POJO.你会在这里找到一些相关的信息.

例如:

   <list name="myArrayListProperty" cascade="all">
        <key column="parent_id"/>
        <index column="idx"/>
        <one-to-many class="WhatIsInTheList"/>
    </list>
Run Code Online (Sandbox Code Playgroud)

但是,使用注释有一些优点.此链接将说明如何使用注释映射任何集合.