hibernate第三天

主键共享:
 <class name="Boss">
  <id>
   <generator name="sequence/increment">
  ...
  <one-to-one name="company" cascade="save-update/all">
 </class>
 <class name="Company">
  <id>
   <generator name="foreign">
    <param name="property">boss</param>
   </generator>
  ...
  <one-to-one name="boss">
 </class>

主外键关联:
 <class name="Boss">
  <id>
   <generator name="sequence/increment">
  ...
  <one-to-one name="company" cascade="save-update/all" property-ref="boss">
 </class>
 <class name="Company">
  <id>
   <generator name="sequence/increment">
  ...
  <many-to-one name="boss" unique="true" column="boss_id">
 </class>

一对多:
 延迟加载:查询1的时候,默认不查多的信息
 ===============================================================================
 注意:
  一对多中默认是延迟加载策略,则只查询一表中的信息,意味着程序中只能使用一表中的信息
 解决:如果想使用多表中得信息
  1)可以设置立即抓取,即
  <set ... lazy="false">
   session.get()方法会使用两条sql语句查询两张表中的相关信息
   如果想使用单条sql语句表连接查询相关信息,则
   则设置fetch="join"(默认fetch="select")
   ---------------------------------------
   如果lazy=true 和 fetch=join同时出现,则
   延迟加载失效
   ---------------------------------------
  2)保持lazy=true的前提下,在查询的方法中,事务提交之前,
  只要尝试使用过多这方的信息,则hibernate会自动查询多表的内容
 ===============================================================================


  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值