Hibernate框架基础知识第三天

第三天Hibernate映射

1.单向关联。

   只能从单向的一段访问另外一段(只能从一个实体访问另外一个实体)。

A.多对一的单向关联。

  只能够从多的实体访问一的实体。在产品表创建实体属性。

 private Cate cate;//分类的实体对象

 

         publicCate getCate() {

                   returncate;

         }

 

         publicvoid setCate(Cate cate) {

                   this.cate= cate;

         }

在产品的映射配置文件中:

<many-to-one name="cate"fetch="join" class="Cate"column="cate_id"></many-to-one>

产品表(多)

分类表(一)

 


B.一对多的单向关联。

产品表(多)

分类表(一)

  

从一的实体访问多的实体(集合)。在分类表的对象中添加多的实体属性集合,也就在Cate实体中加入以下代码:

public Set<Product> getProducts() {

                   returnproducts;

         }

 

         publicvoid setProducts(Set<Product> products) {

                   this.products= products;

         }

 

         privateSet<Product> products;

再修改cate的实体映射文件:

<set name="products"table="Product" >

          <key column="cate_id"></key><!-- 外键关联的名字 -->

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

</set>

2.双向关联:

  两端都能相互访问。在实际开发中均采用的是双向关联。

 

3.级联关系。

  cascade:级联关系,就是如果说两端中的一段数据更新了,是否更新另外另外一端的数据。

 cascade:save-update.当其中一端的数据更新了,那么就会影响到另外一端的数据。比如我更新了产品分类表的数据,那么就会自动更新产品表的数据。

4. inverse:控制反转的属性

 inverse:true。将控制权交予对方。

 inverse:false。将控制权保留起来。

5.fetch:

  如果不设定该属性值,默认情况下,如果有关联表,那么关联表会分批次查询。比如查询分类表,以及分类所对应的产品表。那么会进行两次查询。先查询分类的信息,然后得到分类ID,将分类ID传入产品表里进行查询。

 fetch:join.就会通过left out join 进行表与表之间的关联,最终会是一条sql语句。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值