• hibernate&一对多&多对多


    hibernate一对多配置

       在一方javabean中添加一个Set集合,集合泛型为多方,将集合初始化(new),生成对应的get和set方法,
       在javabean映射中配置:


        <set name="集合名称">
    <key column="多方javabean的外键名称"/>
    <one-to-many class="多方javabean路径"/>
        </set>
    <set>标签
    name属性:表示当前javabean的存储多方数据集合的名称
    cascade属性: 级联保存,保存客户数据 级联是联系人数据,在客户这里配置(在开发中一般不会在主表对象关联 而是inverse放弃)
    inverse属性: 默认值为false,当值为true时放弃维护(为了防止sql重复,提高效率,会放弃一方的维护)


    <key>标签
    column属性:外键名称


    <one-to-many>标签:
    <class>属性:多方javabean的路径


    javabean
    ![一方javabean][1]
    映射文件
    ![一方映射文件][2]


    多方配置:
       在javabean中添加一个属性,类型为一方javabean,不能自己初始化(hibernate会自动完成初始化),生成get和set方法,以及外键


    在多方映射文件中的配置:
       在配置javabean的属性映射数据表字段时,不能配置外键映射字段,需要将外键和对象绑定(一方javabean对象)
       
        <many-to-one name="多方属性中的一方对象" class="一方javabean路径" column="外键名称" cascade="级联"/>


    <many-to-one>标签
    name属性: 在多方javabean中添加的一方javabean对象名称
    class属性: 一方javabean路径
    column属性: 外键名称


    cascade属性: 级联 
    取值有:
    save-update :级联保存和更新
    delete :   级联删除
    delete-orphan :移除删除,先将外键值赋值为null,再删除


    多方javabean
    ![多方javabean][3]
    多方映射配置
    ![多方映射配置][4]


    ## hibernate多对多配置 ##
    只需要配置两个多方,中间表由hibernate框架生成,操作多方集合就相当于操作中间表
      在两个多方的javabean中添加一个外键,和一个集合,集合初始化,生成get和set方法
    演示:
    ![javabean一][5]
    ![javabean二][6]


    映射文件:
    配置多对多必须有一方放弃维护(inverse),另一方需要级联(cascade)
    放弃一方:
        <set name="集合存储的javabean全路径" table="数据表" inverse="true" cascade="save-update">
                <key column="外键名称"></key>
                <many-to-many class="外键对应的javabean路径" column="对应的javabean在中间表的外键"/>
        </set>


    ![映射文件一][7]
    ![映射文件二][8]
  • 相关阅读:
    Python学习-类的继承
    Python学习-else循环子句
    Python学习-类的基本知识
    Python学习-字符编码的理解
    Python小程序—修改haproxy配置文件
    Python学习-局部变量和全局变量以及递归
    蒙特卡洛积分法(三)
    蒙特卡洛积分法(二)
    蒙特卡洛积分法(一)
    由normal生成局部坐标系
  • 原文地址:https://www.cnblogs.com/sybk/p/10004738.html
Copyright © 2020-2023  润新知