我有一些简单的实体存储在一个简单的“代码”表中,该表具有以下结构(全部存储为字符字段):
code_fieldname pk
code_value pk
code_comment
code_field1
code_field2
我想要映射的一个对象的数据存储在以下表格的表格中
code_fieldname = "segment"
class = Segment
segment.id = code_value
segment.name = code_comment
segment.markup = code_field1 (decimal property)
所以段记录都有一个“code_fieldname”=“segment”,其ID是“code_value”的值。
这种结构的映射是什么?我正在使用基于XML的映射。
答案 0 :(得分:0)
我首先通过使用类的继承,然后在关系上使用公式属性来设法解决这个问题。实体的定义如下:
<class name="GeneralCode" table="code_mstr">
<composite-id name="key">
<key-property name="key" column="code_fieldName" type="string"/>
<key-property name="value" column="code_value" type="string"/>
</composite-id>
<discriminator column="code_fieldName" type="string" insert="false"/>
<subclass name="Segment" discriminator-value="segment">
<property name="name" type="string" column="code_comment"/>
</subclass>
</class>
现在我可以在以下关系中使用它:
<many-to-one name="segment" class="Segment"
lazy="false" insert="false" update="false">
<formula>'segment'</formula>
<column name="segment"/>
</many-to-one>
请注意,公式需要引用的“段”值,因为这始终是字段键,即在所有情况下都是code_fieldname ='segment'。