`
miraclerz
  • 浏览: 99483 次
社区版块
存档分类
最新评论

多对一 多对多 级联更新问题

阅读更多

1.

//@OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE},fetch = FetchType.LAZY, mappedBy = "industry")  这里的一对多必须设置@JoinColumn跟多对一里的字段一致,而不设置mappedBy。

@OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE},fetch = FetchType.LAZY)

@JoinColumn(name = "INDUST_ID")

private Set<Sup> sups = new HashSet<Sup>(0);

 

 

 

@ManyToOne(fetch = FetchType.LAZY)

@JoinColumn(name = "INDUST_ID")

private Industry industry;//

 

这样在删除industry时才会级联设置 sup里面的indust_id这个字段为空,也就是去掉关联了,才删除得了industry.

 

2.

以下是多对多

@ManyToMany(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.LAZY)

@JoinTable(name="ES_C_PRO_ES_C_SPEC",inverseJoinColumns={@JoinColumn(name="CSPECS_SPEC_ID")},joinColumns={@JoinColumn(name="ES_C_PRO_CPRO_ID")})

     private Set<Cspec> cspecs = new HashSet<Cspec>(0);// 规格

 

 

@ManyToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE},fetch=FetchType.LAZY)

@JoinTable(name="ES_C_PRO_ES_C_SPEC",inverseJoinColumns={@JoinColumn(name="ES_C_PRO_CPRO_ID")},joinColumns={@JoinColumn(name="CSPECS_SPEC_ID")})

private Set<Cpro> cpros=new HashSet<Cpro>(0);//有哪些产品是用这个规格的

 

 

这里多对多里面两方都一定要设置@JoinTable inverseJoinColumns.......这一整句,这样在双方删除时才会把关联表里的记录给删掉,去掉关联后才能正常删除。

 

 

1
0
分享到:
评论

相关推荐

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

    在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...

    mysql级联更新和级联删除

    ### MySQL级联更新与级联删除详解 在数据库设计中,外键约束是维护数据完整性和一致性的重要手段之一。MySQL的InnoDB存储引擎支持多种不同的处理外键的方式,包括级联更新(Cascade Update)和级联删除(Cascade ...

    实现年月日的级联更新

    在IT领域,级联更新(Cascading Updates)是一种数据库管理技术,用于当某一字段的值发生改变时,自动更新依赖于该字段的其他相关记录。这种机制在数据一致性、关联性和完整性方面扮演着关键角色,尤其在多表关联的...

    Hibernate级联操作一对多demo

    通过这个" Hibernate级联操作一对多demo ",开发者可以深入理解如何在实际项目中利用Hibernate的级联功能来简化代码,提高开发效率,同时也要注意潜在的风险和性能问题。在实践中不断优化,才能更好地掌握这一强大的...

    JPA中的一对多双向关联与级联操作

    在Java Persistence API (JPA) 中,一对...总的来说,JPA的一对多双向关联及级联操作为开发者提供了便利,但也需要注意合理配置以避免潜在的问题。在实际开发中,我们需要根据业务需求和性能考虑来选择合适的关联策略。

    mybatis关联/级联以及动态sql

    关联通常用于描述一个实体对象与另一个实体对象之间的关系,例如一个用户可能有多个订单,这种一对多的关系就可以通过关联来实现。在MyBatis的XML映射文件中,可以通过`&lt;association&gt;`标签来定义这种关系。你可以...

    Java中单表和多表级联的增删改查

    - 当两个或更多表之间存在关联时,例如一对多、多对一或多对多关系,级联操作会涉及到一个表的操作导致另一个表的相关数据也发生变化。例如,删除一个用户可能需要同时删除与之相关的所有订单。 - Hibernate等ORM...

    cas.rar_MATLAB 级联失效_级联_级联失效 代码_级联失效代码_级联失效算法

    然而,压缩包内的"update.exe"可能是一个更新程序,用于更新或安装与级联失效模拟相关的软件组件。在使用这个程序之前,需要谨慎操作,确保它是来自可靠来源,以防止潜在的安全风险,如恶意软件或病毒。 在研究级联...

    10_JPA详解_JPA中的一对多双向关联与级联操作.zip

    本资料包"10_JPA详解_JPA中的一对多双向关联与级联操作.zip"聚焦于JPA中的一个重要概念——一对多双向关联及其级联操作。以下是对这一主题的详细阐述。 **一对多关联** 在关系数据库设计中,一对多关联是最常见的...

    hibernate many-to-many级联保存,级联更新,级联删除

    在数据库设计中,Many-to-Many关系意味着两个实体之间存在多对多的关系。例如,学生可以选修多门课程,而一门课程也可以被多名学生选修。在Hibernate中,这种关系通过中间关联表(也称为连接表或联合表)来实现,该...

    使用SQL Server触发器实现数据表的级联更新.pdf

    SQL Server触发器是数据库中的一种机制,用于实现数据的级联更新。触发器可以被看作是一种特殊的存储过程,可以在数据库事件的触发下执行复杂的SQL语句,从而实现比约束更加复杂的数据完整性要求。 在SQL Server中...

    STM32 定时器级联

    定时器级联的核心是通过连接两个或更多定时器的更新事件线(Update Event, UEV)来实现。当一个定时器的计数达到预设值时,它会触发一个更新事件,这个事件可以被传递到另一个定时器,从而同步它们的操作。例如,一...

    hibernate 级联(cascade和inverse)一对多

    在一对多关系中,如果一个实体(父实体)与多个实体(子实体)关联,设置级联属性可以确保在处理父实体时,子实体的操作也会随之进行。例如,当删除父实体时,可以选择是否同时删除所有子实体。Hibernate提供了多种...

    hibernate many-to-one(多对一)及 cascade(级联).doc

    - **级联操作**:在多对一关系中,可以通过设置级联选项来自动执行某些操作,例如保存或更新相关实体。但是,在实际开发中并不推荐这样做,因为这会降低系统的灵活性和可控性。 #### 二、Cascade (级联) 级联操作...

    JavaScript小案例:级联列表.html

    1.级联还指用来设计一对多关系。举个例子:一个表存放学生的信息:表A(姓名,性别,年龄),姓名为主键。还有一张表存放学生的班级信息:表B(姓名,班级)。他们通过姓名来级联。级联的操作有级联更新,级联删除。 ...

    Spring+Hibernate 一对一映射级联增删改查小例子

    在这个例子中,`@OneToOne` 注解用于声明一对一关系,`mappedBy` 指定反向引用的属性,而 `cascade` 参数设置为 `CascadeType.ALL` 表示级联操作,即当对 `User` 进行操作时,相应的 `Profile` 也会同步更新。...

    用JDBC实现数据库的级联删除与更新

    - **级联更新**: 当某个学院的信息(如名称)被更新时,其对应的学生记录中的学院ID也应随之更新。 ### 2. 设计思路 #### 2.1 数据库设计 为了实现上述功能,需要在数据库层面进行相应的设计,包括表结构设计和...

    uniapp选择器,包含一级,二级级联,三级级联uniapp-picker-master.zip

    二级级联选择器通常涉及到两个列表,当选择第一个列表中的某个项时,第二个列表会根据选择的结果更新。在uni-app中,我们需要动态调整第二个列表的`range`值。例如: ```html 请选择省份: &lt;view&gt;{{province}} ...

    hibernate3.2级联关系自身一对多双向关联

    在Java持久化领域,Hibernate是一个广泛应用的ORM(对象...在实际项目中,这种关联模式常用于构建社交网络、组织结构、多对多关系的中间表等多种场景。因此,深入学习和实践这部分内容对于提升Java开发能力非常有帮助。

Global site tag (gtag.js) - Google Analytics