2016-08-03 25 views
0

我是新来的休眠(有c背景),虽然经历了一些书籍和例子,我总是看到组件嵌入类映射。例如hibernate可以组件是全局的吗?由其他实体共享?

<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注释

我指的是在例如:http://www.mkyong.com/hibernate/hibernate-component-mapping-example/

+0

你问是否有其他组件可以引用这个组件?如果是这样,那么是的。 –

+0

任何其他组件或其他实体,如果是的话可以请提供一些例子? – stultus

+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的顶部添加这是能够使用喜标签:

xmlns:xi="w3.org/2001/XInclude" 

还是有它都在同一行,像这样:

<xi:include href="your-component.xml" xmlns:xi="w3.org/2001/XInclude"/> 
相关问题