hibernate 实体映射模板

多对一

<many-to-one name=“” class=“” column=“”/>

一对多

Set

<set name="">

        <key column=""></key>

        <one-to-many class=""/>

</set>

多对多

Set

<set name="" table="">

        <key column=""></key>

        <many-to-many class="" column=""/>

</set>

写注释
格式为:?属性,表达的是本对象与?的?关系。
例:“department属性,本对象与Department的多对一”
拷模板:

填空:
name属性:属性名(注释中的第1问号)
class属性:关联的实体类型(注释中的第2个问号)
column属性:
•<many-to-onecolumn="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成departmentId。
•一对多中的<keycolumn="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。
•多对多中的<keycolumn=“..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId。
•多对多中的<many-to-manycolumn=“..”>:一般可以写为关联对象的名称加Id后缀。


Demo


<!-- department 属性 本类与Department是多对一关系-->
<many-to-one name="department" class="Department" column="departmentId"></many-to-one>

<!-- roles属性 本类与Role多对多的关系 -->
<set name="roles" table="user_role">
<key column="userId"></key>
<many-to-many class="Role" column="roleId"></many-to-many>
</set>

<!-- users 属性 本类与User是一对多关系-->
<set name="users">
<key column="departmentId"></key>
<one-to-many class="User" ></one-to-many>
</set>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="david.oa.domain">

	<class name="Department" table="department">
		<id name="id">
            <generator class="native"/>
		</id>
		<property name="name"/>
	
		<property name="description"/>
		
		<!-- users 属性 本类与User是一对多关系-->
		<set name="users">
		<key column="departmentId"></key>
		<one-to-many class="User" ></one-to-many>
		</set>
		<!-- parent属性 本类与parent属性是多对一关系 -->
		<many-to-one name="parent" class="Department" column="parentId"></many-to-one>
		
		<!-- children属性 本类与children属性是一对多关系 -->
		<set name="children">
		<key column="parentId"></key>
		<one-to-many class="Department" />
		</set>
	</class>
	
</hibernate-mapping>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值