分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Hibernate 关联映射(三)

发布时间:2023-09-06 02:04责任编辑:蔡小小关键词:Hibernate

一、lazy = "true" 延时加载和及时加载;

  1、一对多关系 

     <set name="list" lazy="true" cascade="all" inverse="true"> ???????????<key column="tid"></key> ???????????<one-to-many class="com.entity.Goods"/> ???????</set>

  2、多对一

     ?<many-to-one name="type" class="com.entity.Type"> ???????????<column name="tid"></column> ???????</many-to-one>

  3、多对多

 ???????<set name="users" ?table="userproject" > ???????????<key> ???????????????<column name="pid"></column> ???????????</key> ???????????<many-to-many entity-name="com.entity.User"> ???????????????<column name="uid"></column> ???????????</many-to-many> ???????</set>

二、cascade属性 级联属性

  none 当Session操纵当前对象时,忽略其他关联的对象。它是cascade属性的默认值
  save-update当通过Session的save()、update()及saveOrUpdate()方法来保存或更新当前对象时,级联保存所有
  关联的新建的瞬时状态的对象,并且级联更新所有关联的游离状态的对象

  merge当通过Session的merge()方法来保存或更新当前对象时,对其关联对象也执行merge()方法


  delete当通过Session的delete()方法删除当前对象时,会级联删除所有关联的对象

  all包含所有的级联行为

三、inverse;只能出现在一方,对象间的关系由谁维护

  inverse属性指定了关联关系中的方向
  inverse设置为false,则为主动方,由主动方负责维护关联关系,默认是false
  inverse设置为true,不负责维护关联关系

  经验:
    1. 在建立两个对象的双向关联时,应该同时修改两个关联对象的相关属性
    2. 建议inverse设置为true

  cascade="all" 和 inverse="true" 就是给它所属的对应的对象增加的功能;

<set name="list" lazy="true" cascade="all" inverse="true"> ???????<key column="tid"></key> ???????<one-to-many class="com.entity.Goods"/></set>

Hibernate 关联映射(三)

原文地址:https://www.cnblogs.com/newbest/p/9314488.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved