欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Hibernate-03

程序员文章站 2022-07-02 22:50:58
目的:表操作(表维护) 一、一对一(略过) 二、一对 1、建表原则:在多的一方创建外键指向一的一方的外键 2、建表:实体中添加 3、操作 1、参数: name属性:集合属性名 column属性: 外键列名 class属性: 与我关联的对象完整类名 2、级联操作: cascade save-updat ......

目的:表操作(表维护)

一、一对一(略过)

二、一对  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>