Person.hbm.xml
<!-- hibernate-mapping 是映射文件的根元素 -->
<hibernate-mapping package="com.hyq.app">
<class name="Person" table="person">
<composite-id name="name" class="Name">
<key-property name="first" type="string"/>
<key-property name="last" type="string"/>
</composite-id>
<property name="email" type="string"/>
<component name="pet" class="Cat">
<!-- 指定owner属性代表容器实体-->
<parent name="owner"/>
<property name="name" coloumn="cat_name"/>
<property name="color" coloumn="cat_color"/>
</component>
</class>
</hibernate-mapping>
每个<class.../>
子元素代表一个持久化类,该元素中的<composite-id.../>
元素用于映射复合主键,<property.../>
元素用于映射普通属性,<component.../>
元素用于映射组件属性。
此时需要将hibernate.cfg.xml文件去加载指定的映射文件,而不是加载持久化类。
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
...
<mapping resource="com/hyq/app/Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>