hibernate表

1 多对一关联: 在多的一段如User.hbm.xml<many-to-one name="group" column="groupid" cascade="save-update"></many-to-one>cascade是级联自动加载Group对象不用save(),Group.hbm.xml正常配置

2 主键关联 :即让两个对象具有相同的主键值,以表明他们之间地一一对应的关系,数据库表不会有额外的字段来维护它们之间地关系,仅通过表的主键来关联例如:

<单向关联>

<class name="com.test.hibernate.Person" table="Person">
  <id name="id">
   <!-- person的主键也是外键 -->
   <generator class="foreign">
   <param name="property">idCard</param>
   </generator>
  </id>
  <property name="name"></property>
  <!-- one-to-one标签是默认加载IdCard的 -->  

<one-to-one name="idCard" constrained="true"></one-to-one> 默认是级联的通过主键加载(当一个类是另一个类的属性时,当加载当前的类时会自动加载另一个类,不用session.save(另一个类的实例);调用另一个类当前类会自动的session.save)one-one的作用是拿person的主键到IdCard找和Person相同的id,找到后加载的;IdCard.hbm.xml正常配置;

<双向关联>: 在单向关联的基础上,在IdCar.hbm.xml上添加<one-to-one name="person"> </one-to-one>,别忘了在对象IdCard类中添加person的属性

注意:在对对象进行数据库操作时,虽然是双向的,但只能通过Person能自动加载IdCard类,反过来不行?????

3 唯一的外键关联

本来是多对一的配置但如果加上唯一的限制 后,也可以用来表示一对一关联关系;

<单向关联>

<id name="id">
   <generator class="native"></generator>
  </id>
  <property name="name"></property>

<many-to-one name="idCard" unique ="true"></many-to-one>在数据库表person中会多个idCard属性加载再议??????

<双向关联>: 在单向关联的基础上,在IdCar.hbm.xml上添加<one-to-one name="person" property-ref="idCard"> </one-to-one>

one-to-one 默认是查找主键如上是Person主键id来找的,而加上property-ref="idCard"则改为通过Person表中idCard属性来查的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值