我使用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”文件中找到线索,但我失败了。
答案 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部分。