是否可以将Hibernate <component>列映射到自定义用户类型?</component>

时间:2011-04-08 19:29:46

标签: java hibernate hibernate-mapping usertype

我已经定义了一个自定义用户类型,在使用我的实体的属性时可以正常工作。例如:

 <class name="com.my.sample" table="MY_TABLE">
    ...
    <property name="foo" type="myCustomUserType">
 </class>

我需要这样的事情:

 <class name="com.my.sample" table="MY_OTHER">
    ...
    <component name="myAddress" class="com.my.sample.Address">
       <property name="street" column="MY_OTHER_ADRR_STREET" />
       <property name="foo" type="myCustomUserType" column="MY_OTHER_ADRR_COLUMN" />
    </component>
 </class>

显然,我假设在.HBM文件中正确定义了myCustomUserType。是否可以映射这样的<component>属性?

1 个答案:

答案 0 :(得分:0)

实际上,它运作正常。还可以使用<component>等关系映射<many-to-one>属性。映射有点像这样:

<component name="myAddress" class="com.my.sample.Address" >
    <property name="aSimpleDate" column="TBL_ADDR_SIMPLE_DATE" type="date" />
    <many-to-one class="OtherClass" name="otherClass" >
        <column name="TBL_ADDR_OTHER_CLASS_ID" precision="9" scale="0"/>
    </many-to-one>
    <property name="foo" column="TLB_ADDR_FOO" type="myCustomUserType" />
</component>

不幸的是,Hibernate documentation对此并不是很明显。