目的:表操作(表维护)

一、一对一(略过)

二、一对  1、建表原则:在多的一方创建外键指向一的一方的外键

2、建表:实体中添加

   商品实体表: private Set<User> user = new Hashset<User>();

   用户实体表:  private Shangping shangping; 

   对应的表映射关系:
    User.hbm.xml:
            <set name="User">
            <key column="user_cust_id"></key>
            <one-to-many class="对象全类名">
            </set>'
    Shangping.hbm.xml:
    <many-to-one name="shangping" class="对象全类名" column="user_cust_id" >
    以及hibernate.cfg.xml中添加:映射配置文件
    <mapping resource="配置文件路经" />
       

3、操作

1、参数:
  name属性:集合属性名
  column属性: 外键列名
  class属性: 与我关联的对象完整类名

2、级联操作: cascade
  save-update: 级联保存更新(推荐使用)
  delete:级联删除(不推荐啊)
  all:save-update+delete
  级联操作: 简化操作.目的就是为了少些两行代码.
3、索引维护
  inverse属性: 配置关系是否维护.
  true: customer不维护关系
  false(默认值): customer维护关系
  inverse属性: 性能优化.提高关系维护的性能.
  原则: 无论怎么放弃,总有一方必须要维护关系.
  一对多关系中: 一的一方放弃.也只能一的一方放弃.多的一方不能放弃.

<set name="User" inverse="true" cascade="delete" >
  <key column="user_cust_id" ></key>
  <one-to-many class="User" />
</set>

三、多对多

  1、建表原则:创建中间表,中间表中至少两个字段作为外键分别指向多对多双方的主键(既:类似于一对多)

  2、实体

User.java
private Set<User> users = new HashSet<User>();
Role.java
private Set<Role> roles = new HashSet<Role>();

  3、表操作

使用inverse属性
true: 放弃维护外键关系
false(默认值):维护关系

结论: 将来在开发中,如果遇到多对多关系.一定要选择一方放弃维护关系.
    一般谁来放弃要看业务方向. 例如录入员工时,需要为员工指定所属角色.
   那么业务方向就是由员工维护角色. 角色不需要维护与员工关系.角色放弃维护

<set name="users" table="sys_user_role" inverse="true" >
  <key column="role_id" ></key>
  <many-to-many class="User" column="user_id" ></many-to-many>
</set>

Hibernate-03的更多相关文章

  1. Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略

    Hibernate 加载数据 有get,跟Load 1.懒加载: 使用session.load(type,id)获取对象,并不读取数据库,只有在使用返回对象值才正真去查询数据库. @Test publ ...

  2. Hibernate 系列 03 - 使用Hibernate完成持久化操作

    引导目录: Hibernate 系列教程 目录 康姆昂,北鼻,来此狗.动次打次,Hibernate继续走起. 目录: 使用Hibernate实现按主键查询 使用Hibernate实现数据库的增.删.改 ...

  3. 03 Hibernate错题分析

    1.在Hibernate中,以下关于主键生成器说法错误的是( C). A.increment可以用于类型为long.short或byte的主键 B.identity用于如SQL Server.DB2. ...

  4. 03.Hibernate一对多关联

    前言:在域模型中,类与类之间最普遍的关系就是关联关系,在UML语言中关联关系是有方向的.在数据库中表与表之间也会有关联关系,本节介绍通过Hibernate映射一对多的关联关系,这是一种最普遍的关联关系 ...

  5. Hibernate框架笔记03表操作多对多配置

    目录 1. 数据库表与表之间的关系 1.1 一对多关系 1.2 多对多关系 1.3 一对一关系[了解] 2. Hibernate的一对多关联映射 2.1 创建一个项目,引入相关jar包 2.2. 创建 ...

  6. Hibernate表关系03

    一. 一对多映射 1.基本应用 1.1 准备项目 创建项目:hibernate-02-relation 引入jar,同前一个项目 复制实体(客户).映射.配置.工具类 1.2 创建订单表 表名: t_ ...

  7. Exception 03 : org.hibernate.MappingException: Unknown entity: org.hibernate.cfg.Configuration

    异常名称 org.hibernate.MappingException: Unknown entity: org.hibernate.cfg.Configuration 异常详细信息 org.hibe ...

  8. Hibernate-ORM:03.Hibernate主键生成策略

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 此篇博客简单记录五种常用的主键生成策咯: 不同的主键生成策略,生成的sql语句,以及hibernate的操作都 ...

  9. Java进阶知识03 Hibernate的基础配置详解

    1.Hibernate的原理/流程步骤 1.通过Configuration().configure(); 读取并解析hibernate.cfg.xml配置文件,并创建一个configuration对象 ...

  10. 03.Hibernate配置文件之核心配置文件

    一.核心配置文件的两种配置方式 1.属性文件方式 hibernate.properties(基本不会选用 hibernate.connection.driver_class=com.mysql.jdb ...

随机推荐

  1. uni-app引入阿里iconfont

    前言: 目前正在通过 UNI-APP平台开发移动应用,uni-app平台是去年年出才创建的一个新品台,因此资源相对比较匮乏,在此遇到一个问题,一直使用别人提供的iconfont,但总是不够用,为了解决 ...

  2. AtCoder Grand Contest 003 D - Anticube

    题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_d 题目大意: 给定\(n\)个数\(s_i\),要求从中选出尽可能多的数,满足任意两个数之积 ...

  3. Hdu 5439 Aggregated Counting (2015长春网络赛 ACM/ICPC Asia Regional Changchun Online 找规律)

    题目链接: Hdu 5439 Aggregated Counting 题目描述: 刚开始给一个1,序列a是由a[i]个i组成,最后1就变成了1,2,2,3,3,4,4,4,5,5,5.......,最 ...

  4. oracle PL、SQL(二)

    oracle PL.SQL(基础知识点二) --1,参数 in:表示输入类型,可以省略 :out:输出类型不能省略---------- ----案例1:编写一个过程,可以输入雇员的编号,返回该雇员的姓 ...

  5. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例

    按照ASP.NET MVC Identity建立了一個用戶權限管理模塊,由于還要加自己已有的數據庫,所以建立了一個實體模型,建立了之后,發現登錄不了: 一直顯示“Login in failed for ...

  6. Java网络编程学习笔记

    Java网络编程,我们先来看下面这一张图: 由图可得:想要进行网络编程,首先是服务器端通过ServerSocket对某一个端口进行监听.通过accept来判断是否有客户端与其相连.若成功连上,则通过r ...

  7. appium学习链接记录

    乙醇大师的园子: http://www.cnblogs.com/nbkhic/tag/appium/ webDriver java版 https://github.com/easonhan007/we ...

  8. How `delete’ works ?

    这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=21 February 16, 2013 How `delete’ works ...

  9. DLL入门浅析【转】

     1.建立DLL动态库 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的.所有的C语言标准库函数都存放在某一函数库中.在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数 ...

  10. Sql Server 2012 分页方法分析(offset and fetch)

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中  offse ...