hibernate一对多单向关联时更新问题

需求:
修改一个联系人,为其重新分配客户

问题:
当更新一个托管态/持久态对象时,该对象关联了一个临时态对象,会报错

解决办法:
使用级联保存更新

要更新谁,就在谁的映射文件中配置

<!-- 一对多关系映射:
set元素的属性:
    cascade:级联操作。
        取值:
            save-update:级联保存更新
            delete:级联删除。-->

<set name="linkmans" table="cst_linkman" cascade="save-update,delete" >
<key column="lkm_cust_id"></key>
<one-to-many class="CstLinkMan"/>
</set>

多对一关系映射:
many-to-one元素的属性:
cascade:级联操作
取值:save-update 级联保存更新

<many-to-one name="customer" class="CstCustomer"
column="lkm_cust_id" cascade="save-update" />

原文地址:http://blog.51cto.com/13579086/2085448

时间: 2024-08-09 02:07:21

hibernate一对多单向关联时更新问题的相关文章

Hibernate 一对多单向关联Demo

以Classes[班级]和Student[学生]为例的Demo Classes .java public class Classes implements Serializable { private long Cid; private String Cname; private String Cdesc; private Set<Student> students; //get和set } Student .java public class Student implements Seria

Hibernate一对多单向关联和双向关联映射方法及其优缺点 (待续)

一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同.它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的同时加载多的一端的数据 多对一关联映射是指在加载多的一端数据的同时加载一的一端的数据 而单向一对多关联映射是在一的一端维护关系的,具有以下的缺点: 必须先保存多的一端后才可以保存一的一端,所以在保存多的一端时多的一端不知道一的一端是否 存在相应的数据,所以只能将维护的关系字段设置为null,如果为非空

hibernate之关于一对多单向关联映射

[hibernate]之关于一对多单向关联映射 基于外键的一对多关联映射!一对多,Group(组)对于Person(人),一个组可以有多个人!ok? Hibernate主要有两种配置方法,一种是Annotations 一种是XML! 下面是Annotations的配置方法! @Entity @Table(name="t_group") publicclass Group { private Integer id; private String name; private Set<

hibernate5(10)注解映射[2]一对多单向关联

在上一篇文章里.我们从端方向一端建立关联关系,完毕了从文章到作者的关联关系建立.但在实际的博客站点中,用户肯定还须要获取自己所写的文章,这时能够建立用户(一)对文章(多)的单向关联映射. 先来看我们的一方配置实例 package com.zeng.model; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.F

hibernate5(9)注解映射[1]一对多单向关联

一对多单向关联映射 在实际的博客网站中,用户肯定需要获取自己所写的文章,这时可以建立用户(一)对文章(多)的单向关联映射. 先来看我们的一方配置实例 package com.zeng.model; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persisten

【Hibernate步步为营】--单向关联之一对多映射

上篇文章讨论了双向关联的一对一映射,用了两个章节,主要是从主键和外键两种关联映射展开详细讨论,双向关联的映射需要在两个映射文件中分别添加相互的对应关系,斌刚在相应的类中添加对应的关联类的属性,这样在一端加载时才能加载到另一端的对象.关联中常用的主要有多对一.一对一.一对多和多对多,我们已经讨论了两种映射关系,接下来将会讨论一对多的关系. 一.单向一对多 前篇文章中曾经对多对一的关系展开了讨论,其中主要使用的是<many-to-one>的关系,在多的一端维护一的一端,那和今天要讨论的一对多的关系

【Hibernate步步为营】--单向关联一对一映射(一)

上篇文章对多对一的关联映射做了详细的分析,它在实现上可以有两种方式,并且这两种方式实现也很简单,关键是标签<many-to-one>的使用,它分别指明了多端和一端的映射关系,这种映射关系既是对象模型中的聚合关系.接下来继续讨论关联映射. 一.唯一外键 唯一外键说的是数据库表中的每一行的外键唯一对应着另一张表中的主键,也就是说一个表的主键作为另一张表的外键,并且它们之间的关系是唯一的,这种反应到关系模型中如下图所示: 上图的两个实体表,分别为人和身份证,很明显的一个人对应着一个身份证.身份证作为

一口一口吃掉Hibernate(五)——一对多单向关联映射

版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate(四)--多对一单向关联映射>中,介绍了多对一的关联映射,今天就反过来说一下一对多的单向关联映射. 可能有人会对这2篇博客的题目有点混淆不清,跟日常说的关系有点不同.我们日常说的比如父子关系,夫妻关系都是说的双向关系,而现在讨论的则是单向关系,所以也就有了多对一和一对多的说法. 二者的关系其实很简单,只是

Hibernate 一对多双向关联Demo

以Classes[班级]和Student[学生]为例的Demo //Classes.java public class Classes implements Serializable { private long cid; private String cname; private String cdesc; private Set<Student> students; //get和set } //Student .java public class Student implements Se