我是hibernate的新手(有c背景),在阅读一些书籍和示例时,我总是看到嵌入在类映射中的组件。例如
<hibernate-mapping>
<class name="com.mkyong.customer.Customer" table="customer">
<!-other entity mapping -->
<component name="Address" class="com.mkyong.customer.Address">
<property name="address1" type="string">
<column name="ADDRESS1" not-null="true" />
</property>
<property name="address2" type="string">
<column name="ADDRESS2" not-null="true" />
</property>
</component>
.
.
</class>
</hibernate-mapping>
我的问题是,可以将组件设为全局并由任何实体共享吗?像@embeddable JPA annotation
我指的是示例:http://www.mkyong.com/hibernate/hibernate-component-mapping-example/
答案 0 :(得分:0)
将组件放在自己的xml文件中。只有这样的组件:
<component name="Address" class="com.mkyong.customer.Address">
<property name="address1" type="string">
<column name="ADDRESS1" not-null="true" />
</property>
<property name="address2" type="string">
<column name="ADDRESS2" not-null="true" />
</property>
</component>
然后,只要您想重用此组件,只需使用以下行:
<xi:include href="your-component.xml" />
请务必在xml的顶部添加此内容,以便能够使用xi标记:
xmlns:xi="w3.org/2001/XInclude"
或者将它全部放在一行中:
<xi:include href="your-component.xml" xmlns:xi="w3.org/2001/XInclude"/>