`
wang_zhi_peng2007
  • 浏览: 255349 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate一对多级联保存及删除(总结)

 
阅读更多

  以下为项目开发中总结:

 hibernate一对多级联保存及删除:

   采购单表头及单据行信息保存

    1. 采购单表头对象 ("一方" 对象)

//采购单表头:(一方)

public class PssBuyHead implements java.io.Serializable {
 private Integer buyid;
 private PssDepot pssDepot;
 private PssSupplier pssSupplier;
 private TSysUser TSysUser;
 private String buynum;
 private String buybills;
 private Date buydate;
 private String buydes;
 private Integer buytotal;
 private String isok;
 private String buytype;
 private Date createdate;
 private Integer createpeople;
 private Integer sumnum;
 private Float sumprice;
 private Set<PssBuyLine> pssBuyLines = new HashSet<PssBuyLine>(0);
 (get...set...方法省略)

   采用set集合对行信息的关联  

   private Set<PssBuyLine> pssBuyLines = new HashSet<PssBuyLine>(0);

    采购单行信息对象 ("多方"对象)

public class PssBuyLine implements java.io.Serializable {

	private Integer productlinid;
	private PssBuyHead pssBuyHead;
	private String productbm;
	private String productname;
	private String standard;
	private String unit;
	private Integer productsum;
	private Float inprice;
	private Float buysummoney;
	private String product;
	private String productnum;
	private String productdes;

(get... set ...)

    头信息对象

 

     private PssBuyHead pssBuyHead;
 

2. 映射对象 .hbm.xml对象

     "一方" 采购单头信息

<hibernate-mapping>
    <class name="com.business.buy.pojo.PssBuyHead" table="pss_buy_head">
        <id name="buyid" type="java.lang.Integer">
            <column name="BUYID" precision="8" scale="0"/>
            <generator class="increment"/>
        </id>
        <many-to-one name="pssDepot" class="com.business.base.pojo.PssDepot" lazy="false"  fetch="select">
            <column name="DEPOTID" precision="8" scale="0">
                <comment>仓库代码</comment>
            </column>
        </many-to-one>
        <many-to-one name="pssSupplier" class="com.business.base.pojo.PssSupplier" lazy="false" fetch="select">
            <column name="SUPPLIERID" precision="8" scale="0">
                <comment>供应商代码</comment>
            </column>
        </many-to-one>
        <many-to-one name="TSysUser" class="com.popedom.dyhx.pojo.TSysUser" lazy="false" fetch="select">
            <column name="USERID" precision="8" scale="0">
                <comment>用户ID</comment>
            </column>
        </many-to-one>
        <property name="buynum" type="java.lang.String">
            <column name="BUYNUM" length="20" />
        </property>
        <property name="buybills" type="java.lang.String">
            <column name="BUYBILLS" length="20" />
        </property>
        <property name="buydate" type="java.util.Date">
            <column name="BUYDATE" length="19" />
        </property>
        <property name="buydes" type="java.lang.String">
            <column name="BUYDES" length="40" />
        </property>
        <property name="buytotal" type="java.lang.Integer">
            <column name="BUYTOTAL" />
        </property>
        <property name="isok" type="java.lang.String">
            <column name="ISOK" length="10" />
        </property>
        <property name="buytype" type="java.lang.String">
            <column name="BUYTYPE" length="10" />
        </property>
        <property name="createdate" type="java.util.Date">
            <column name="CREATEDATE" length="19" />
        </property>
        <property name="createpeople" type="java.lang.Integer">
            <column name="CREATEPEOPLE" />
        </property>
        <property name="sumnum" type="java.lang.Integer">
            <column name="SUMNUM" />
        </property>
        <property name="sumprice" type="java.lang.Float">
            <column name="SUMPRICE" precision="10" />
        </property>
        <set name="pssBuyLines" inverse="false" lazy="false" cascade="all">
            <key>
                <column name="BUYID" precision="8" scale="0" />
            </key>
            <one-to-many class="com.business.buy.pojo.PssBuyLine" />
        </set>
    </class>
</hibernate-mapping>

    "一"方关联"多方"对象

 

       <set name="pssBuyLines" inverse="false" lazy="false" cascade="all">
            <key>
                <column name="BUYID" precision="8" scale="0" />
            </key>
            <one-to-many class="com.business.buy.pojo.PssBuyLine" />
        </set>
   

    采购单行信息(“多方”)

<hibernate-mapping>
    <class name="com.business.buy.pojo.PssBuyLine" table="pss_buy_line">
        <id name="productlinid" type="java.lang.Integer">
            <column name="PRODUCTLINID" precision="8" scale="0"/>
            <generator class="increment"/>
        </id>
        <many-to-one name="pssBuyHead" class="com.business.buy.pojo.PssBuyHead" fetch="select">
            <column name="BUYID" precision="8" scale="0" />
        </many-to-one>
        <property name="productbm" type="java.lang.String">
            <column name="PRODUCTBM" length="20" />
        </property>
        <property name="productname" type="java.lang.String">
            <column name="PRODUCTNAME" length="30" />
        </property>
        <property name="standard" type="java.lang.String">
            <column name="STANDARD" length="20" />
        </property>
        <property name="unit" type="java.lang.String">
            <column name="UNIT" length="8" />
        </property>
        <property name="productsum" type="java.lang.Integer">
            <column name="PRODUCTSUM" />
        </property>
        <property name="inprice" type="java.lang.Float">
            <column name="INPRICE" precision="10" />
        </property>
        <property name="buysummoney" type="java.lang.Float">
            <column name="BUYSUMMONEY" precision="10" />
        </property>
        <property name="product" type="java.lang.String">
            <column name="PRODUCT" length="20" />
        </property>
        <property name="productnum" type="java.lang.String">
            <column name="PRODUCTNUM" length="20" />
        </property>
        <property name="productdes" type="java.lang.String">
            <column name="PRODUCTDES" length="30" />
        </property>
    </class>
</hibernate-mapping>

    "多方"关联"一方"对象

 

       <many-to-one name="pssBuyHead" class="com.business.buy.pojo.PssBuyHead" fetch="select">
            <column name="BUYID" precision="8" scale="0" />
        </many-to-one>

 (以上代码调试通过)


    总结: 1,一对多关联;

                2,“一”方维护关系;(inverse="false" lazy="false" cascade="all")

                3;级联操作并删除孤儿;
            (inverse,cascade不能再“多”方的配置文件<many-to-one.../>中配置)

   

     -----配置文件相关配置参数说明-----

     cascade:级联,可选值为:none,save-update,delete,all,all-delete-orphan 
    
inverse: 反转,表示由哪方维护关系false为自己维护,可选值:true,false

    lazy: true/false ; false 为非延迟加载

 

 

 

 

 

分享到:
评论

相关推荐

    Nhibernate一对多级联保存_双向映射[归类].pdf

    在Nhibernate中,一对...总结来说,Nhibernate中的一对多级联保存和双向映射是用于管理复杂对象关系的重要特性。通过恰当的注解配置,可以实现父对象与子对象的自动保存和关系导航,简化了ORM的使用,提升了开发效率。

    Hibernate 一对多、多对一、级联、加载、反转

    3. **级联操作**:级联是指当对一个实体进行某些操作(如保存、删除)时,这些操作会自动传播到与其关联的其他实体。例如,如果我们设置级联类型为`CascadeType.ALL`,那么删除一个用户时,与之关联的所有订单也会被...

    [AB PLC例程源码][MMS_044666]Translation N-A.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    kolesar_3cd_01_0716.pdf

    kolesar_3cd_01_0716

    latchman_01_0108.pdf

    latchman_01_0108

    matlab程序代码项目案例:matlab程序代码项目案例MPC在美国高速公路场景中移动的车辆上的实现.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    pimpinella_3cd_01_0716.pdf

    pimpinella_3cd_01_0716

    petrilla_01_0308.pdf

    petrilla_01_0308

    [AB PLC例程源码][MMS_041452]Speed Controls in Plastic Extrusion.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    强化学习驱动下DeepSeek技术创新及其对AI发展的影响

    内容概要:本文档由张卓老师讲解,重点探讨DeepSeek的技术革新及强化学习对未来AI发展的重要性。文章回顾了AI的历史与发展阶段,详细解析Transformer架构在AI上半场所起到的作用,深入介绍了MoE混合专家以及MLA低秩注意机制等技术特点如何帮助DeepSeek在AI中场建立优势,并探讨了当前强化学习的挑战和边界。文档不仅提及AlphaGo和小游戏等成功案例来说明强化学习的强大力量,还提出了关于未来人工通用智能(AGI)的展望,特别是如何利用强化学习提升现有LLMs的能力和性能。 适用人群:本资料适宜对深度学习感兴趣的研究人员、开发者以及想要深入了解人工智能最新进展的专业人士。 使用场景及目标:通过了解最新的AI技术和前沿概念,在实际工作中能够运用更先进的工具和技术解决问题。同时为那些寻求职业转型或者学术深造的人提供了宝贵的参考。 其他说明:文中提到了许多具体的例子和技术细节,如DeepSeek的技术特色、RL的理论背景等等,有助于加深读者对于现代AI系统的理解和认识。

    有师傅小程序开源版v2.4.14+前端.zip

    有师傅小程序开源版v2.4.14 新增报价短信奉告 优化部分细节

    [AB PLC例程源码][MMS_047333]Motor Sequence Starter with timers to start.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    商城二级三级分销系统(小程序+后台含源码).zip

    商城二级三级分销系统(小程序+后台含源码).zip

    li_3ck_01b_0918.pdf

    li_3ck_01b_0918

    nicholl_3cd_01_0516.pdf

    nicholl_3cd_01_0516

    1995-2022年 网络媒体关注度、报刊媒体关注度与媒体监督相关数据.zip

    媒体关注度是一个衡量公众对某个事件、话题或个体关注程度的重要指标。它主要反映了新闻媒体、社交媒体、博客等对于某一事件、话题或个体的报道和讨论程度。 媒体监督的J-F系数(Janis-Fadner系数)是一种用于测量媒体关注度的指标,特别是用于评估媒体对企业、事件或话题的监督力度。J-F系数基于媒体报道的正面和负面内容来计算,从而为公众、研究者或企业提供一个量化工具,以了解媒体对其关注的方向和强度。 本数据含原始数据、参考文献、代码do文件、最终结果。参考文献中JF系数计算公式。 指标 代码、年份、标题出现该公司的新闻总数、内容出现该公司的新闻总数、正面新闻数全部、中性新闻数全部、负面新闻数全部、正面新闻数原创、中性新闻数原创、负面新闻数原创,媒体监督JF系数。

    [AB PLC例程源码][MMS_040315]Double INC and Double DEC of INT datatype.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_047773]Convert Feet to Millimeters.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_042349]How to read-write data to-from a PLC using OPC in Visual Basic 6.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例论文代码 多篇RMPC 鲁棒模型预测控制Paper-code-implementation.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

Global site tag (gtag.js) - Google Analytics