我正在尝试将类语言映射到类用户。
多对一映射工作正常,并且通过应用程序的功能,我可以将值从默认值null设置为特定值。
问题是我想将默认映射设置为idLanguage 1,但是当它映射所有内容时都设置为null。
我努力了:
< many-to-one name="language" class="com. \etc\ .language.Language" column="language" default="1" lazy="false" />
但是,这给我一个错误“必须为元素类型“多对一”声明属性默认值。
该怎么办?
(注意:语言映射到用户类中的语言对象,而不是语言ID。在应用中进行设置会将语言的ID放入“语言”列中,替换为空值)
最佳答案
我希望这些语言将成为您应用程序中的种子数据。然后在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之前不必从数据库中获取Languages Bean。同样,在用户负载下,语言也将可用。
关于java - hibernate :在多对一类映射中设置默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7901974/