如何在hibernate映射中配置List?

时间:2015-12-25 18:30:13

标签: java hibernate-mapping

我正在使用Hibernate映射来配置我的应用程序中的阶段。它被配置为必要的类(这里称为Configurator)注入阶段。

我有一个包含对象分数的列表:

private List<Score>dsScore = new ArrayList<Score>(0);

我有一个包含表Score的数据库,以及Student和student.hbm.xml类中的列表:

 `<list name ="dsScore" table="SCORE">
                <key> 
                    <column name="SCORE_ID" not-null="true"></column>
                </key>
                <one-to-many class="model.Score"/>      
            </list>`

进入包含它的文件配置学生,它不起作用。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

  1. list hibernate类型是具有持久排序的集合。它 要求基础表中的显式映射列进行排序,所以 您的映射缺少<index>/<list-index>元素。或者您 应该使用bag(可能带有order-by属性)来获取集合 映射到java List而不保持顺序。 See docs
  2. 使用package     <hibernate-mapping>上的属性,而不是限定的类名。
  3. 我假设StudentScore类都在model包中。然后映射应该看起来像

    <hibernate-mapping package="model">
        <class name="Student" table="...">
            ...
            <bag name="dsScore" table="Score" order-by="...">
                <key column="SCORE_ID" />
                <one-to-many class="Score" />
            </bag>
        </class>
    </hibernate-mapping>