Hibernate映射文件中的常量

时间:2010-06-18 10:52:02

标签: hibernate

我想将一个值对象添加到映射类,其中一列是固定的,具体取决于包含该组件的类。我怎么能这样做?

<component name="aComponent">
  <property name="abc" column="cde"/>
  <property name="xyz" value="FIXED"/>
</component>

不幸的是,value属性不存在。还有另一种方法可以将常量值应用于属性吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您应该使用公式,例如

<property name="xyz" formula="1" type="big_decimal"/>

来自Java Persistence with Hibernate,ch。 4.4.1:

  

每次从中检索实体时,都会评估给定的SQL公式   数据库(而不是在任何其他时间,所以如果其他的结果可能会过时   属性被修改)。该属性没有列属性(或子元素)   并且永远不会出现在SQL INSERTUPDATE中,只会出现在SELECT中。公式   可以引用数据库表的列,它们可以调用SQL函数,   它们甚至可能包含SQL子选择。 SQL表达式传递给   底层数据库原样;这是一个很好的机会将您的映射文件绑定到   特定的数据库产品,如果您不小心并依赖特定于供应商   运营商或关键词。