更改Hibernate 3设置

时间:2010-05-09 20:30:52

标签: hibernate orm settings reverse-engineering hbm

我使用Hibernate3和Hibernate Tools 3.2.4来生成hbm.xml和java文件,我想使用List而不是HashSet(...)。我试图修改hbm.xml文件,把列表而不是set。有没有办法指定hibernate工具,我想自动生成一个列表而不是HashSet? 这是一个例子:

Java类

public class Test implements java.io.Serializable {  

     private Long testId;  
     private Course course;  
     private String testName;  
     private Set<Question> questions = new HashSet<Question>( 0 );  
}

Test.hbm.xml:

<set name="questions" inverse="true" lazy="true" table="questions" fetch="select">  
  <key>  
    <column name="test_id" not-null="true" />  
  </key>  
  <one-to-many class="com.app.objects.Question" />
  ...
</set>

我认为我可以在“reveng.xml”文件中找到线索,但我失败了。

1 个答案:

答案 0 :(得分:1)

那么,您是否尝试使用<set>而不是在hbm.xml中使用<list>?请注意,您需要集合表中的索引列才能使用<list>(因为List是有序集合)。

尝试类似的东西:

<list name="questions" 
      inverse="true" 
      lazy="true" 
      table="questions" 
      fetch="select">  
  <key column name="test_id" not-null="true" />  
  <list-index column="sortOrder"/>
  <one-to-many class="com.app.objects.Question" />
</list>

有关完整详细信息,请参阅文档中的6.2. Collection mappings部分。请特别注意6.2.3. Indexed collections部分。