如何在复合id中初始化另一个属性

时间:2012-05-24 09:27:26

标签: java hibernate

拥有以下内容:

<class name="ClassName" entity-name="EntityName1" table="table1" lazy="false">

    <composite-id name="classPK" class="com.....ClassPK">
        <key-property name="ID" column="id" type="integer"/>
    </composite-id>
.....

    <class name="ClassName" entity-name="EntityName2" table="table2" lazy="false">

    <composite-id name="classPK" class="com.....ClassPK">
        <key-property name="ID" column="id" type="integer"/>
    </composite-id>
.....

即。映射到2个表但具有相同类的2个实体。复合ID与上面的im代码一样使用。当从DB加载实体EntityName2或EntityName1时,需要在ClassPK类中初始化一个或多个属性。我需要用2个不同的常量值初始化它。例如,分别为EntityName1和EntityName2的“value1”和value2。

所以我希望有可能写出类似

的内容
<class name="ClassName" entity-name="EntityName1" table="table" lazy="false">

<composite-id name="classPK" class="com.....ClassPK">
    <key-property name="ID" column="id" type="integer"/>
    <property name="propertyname" formula = "'value1'"/>
</composite-id>

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

不确定这是否是一个好主意,但你可以尝试

<key-property name="propertyname" formula = "'value1'">
  <column formula="'value1'"/>
</key-property>