Hibernate:在多对一类映射中设置默认值

时间:2011-10-26 11:29:03

标签: java xml hibernate mapping hql

我正在尝试将类语言映射到类User。

多对一映射工作正常,通过应用程序的功能,我可以将值从默认值null设置为特定值。

问题是我想将默认映射设置为idLanguage 1,但是当它映射时,所有内容都设置为null。

我试过了:

< many-to-one name="language" class="com. \etc\ .language.Language" column="language" default="1" lazy="false" />

然而,这给了我一个错误“必须为元素类型Many To One声明属性默认值。

怎么办?

(注意:语言映射到用户类中的语言对象,而不是语言ID。应用程序中的设置将语言的id放在语言列中,替换空值)

1 个答案:

答案 0 :(得分:1)

我希望语言将成为您应用程序中的种子数据。然后在User映射中有一个单独的 langId 字段,并将其设置为1.加载User bean时可以使用Object映射。所以修改映射如下。

< many-to-one name="language" class="com. \etc\ .language.Language" column="language" lazy="false" insert="false" update="false"/>

<property name="langId" column="language"/>

这样,它将更具性能,因为您不必在保存User bean之前从DB中获取Languages bean。此外,在加载用户时,语言将可用。