`
78425665
  • 浏览: 124808 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate中OneToMany双向关联,不生成连接表,级联增删改配置

 
阅读更多
One方配置:
	@OneToMany(fetch = FetchType.EAGER) //即时加载
	@JoinColumn(name = "ERP_GOODS_PID")// 必须写,否则会生成一个连接表
	@OrderBy("id")// 排序,否则每次取出来Set集合元素的顺序都不一样,为什么用Set集合,官方解释是说它的增删改效率最高
	@Cascade({CascadeType.ALL,CascadeType.DELETE_ORPHAN}) // 这才是关键,必须使用org.hibernate.annotations.CascadeType. DELETE_ORPHAN 更新的时候,才会根据Set集合的元素,去维护父子关系(不在集合的元素会delete掉,而不是将外键update成null)
	public Set<ErpGoodsDetail> getErpGoodsDetails() {
		return erpGoodsDetails;
	}


--------------------------------------------------------------
Many方配置:
	@ManyToOne
	@JoinColumn(name="ERP_GOODS_PID")// 必须写,否则会生成一个多余的外键字段(有点不解),不影响操作,但绝对不是你想要的。
	public ErpGoods getErpGoodsParent() {
		return erpGoodsParent;
	}


这样配置后,你在操作one方所有的增删改查,就都符合我们意图了。但在操作many方的时候,有点小插曲,就是当你删除的时候,会报异常:deleted object would be re-saved by cascade
解决办法可以参考下面这一篇的第二种方法,先删除关联关系,再删除
http://corejava2008.iteye.com/blog/896080



其他的扩展阅读:http://sin90lzc.iteye.com/blog/1048122
分享到:
评论

相关推荐

    hibernate一对多关联映射(单向关联)

    在Java的持久化框架Hibernate中,一对多关联映射是一种常见的关系映射方式,它用于表示一个实体(如用户)可以拥有多个关联实体(如订单)。在这个场景中,"一"通常代表父实体,"多"代表子实体。这篇博客文章...

    Hibernate ORM - 一对多双向连接表关联关系

    “Hibernate ORM - 一对多双向连接表关联关系”这个标题指出我们要讨论的是Hibernate ORM框架中的一种特定数据库关联模型,即一对多的双向关联。在Hibernate中,ORM(对象关系映射)是一种技术,它允许我们用面向...

    hibernate表之间3种双向关联映射

    在Java持久化框架Hibernate中,表之间的关联映射是实现对象关系映射(ORM)的关键。本篇文章将详细探讨三种常见的双向关联映射方式:双向多对多(BidirectionalManyToMany)、双向一对多(BidirectionalOneToMany)...

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

    总结,本资料包主要探讨了JPA中一对多双向关联的配置以及级联操作的使用,这些都是在实际开发中处理复杂对象关系时不可或缺的知识点。通过理解和熟练应用这些概念,开发者可以更加高效地管理数据库中的对象关系。

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

    这篇博客将深入探讨JPA中的一对多双向关联以及级联操作。 首先,让我们理解一对多关联。假设我们有两个实体,一个是`User`(用户)和一个是`Post`(帖子)。一个用户可以发布多个帖子,但一个帖子只能属于一个用户...

    hibernate多对多双向关联

    总结来说,理解并能正确使用Hibernate中的多对多双向关联是Java开发中的重要技能,涉及到实体设计、映射配置、数据操作和性能优化等多个方面。通过学习提供的博客和相关代码示例,开发者可以深入掌握这一主题,并将...

    hibernate双向一对多关联映射(注解版)

    在Java的持久化框架Hibernate中,双向一对多关联映射是一种常见的关系映射方式,它模拟了数据库中的外键关联,使得一个实体可以拥有多个另一个实体的实例。在这个注解版的实现中,我们将深入探讨如何使用Hibernate的...

    10_传智播客JPA详解_JPA中的一对多双向关联与级联操作

    本教程将深入探讨JPA中的一对多双向关联及级联操作,这对于理解和使用JPA进行复杂数据模型管理至关重要。 首先,我们来理解一下一对多关联。在数据库设计中,一对多关联是指一个实体(表)可以与多个其他实体相关联...

    Hibernate ORM - 一对多双向关联关系

    描述部分为空,但我们可以根据标题推测,这篇博客可能详细解释了如何在Hibernate中配置和管理这种一对多双向关联,包括XML配置、注解方式,以及如何在代码中进行操作和查询。 **Hibernate ORM简介** Hibernate是一...

    Hibernate双向关联代码示例

    在Hibernate中,双向关联可以通过注解或XML配置文件来实现,使得在Java对象层面可以方便地进行双向导航。 1. **单向一对多关联(OneToMany)** 在这个关联中,一个父对象可以有多个子对象,但子对象并不知道父对象...

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

    在Hibernate 3.2版本中,级联关系是处理对象间关联的重要特性,特别是自身一对多双向关联,这允许一个实体类实例与多个相同类型的其他实例相关联,而且这种关联是双向的。现在,让我们深入探讨这个主题。 首先,...

    hibernate一对多,多对一,一对多双向关联

    8. **双向关联的维护:** 在双向关联中,需要确保两边的引用都得到正确的维护,避免数据不一致。 9. **FetchType:** FetchType 可以是 FetchType.LAZY(懒加载)或 FetchType.EAGER(急加载),用于控制关联的加载...

    Hibernate Annotation 基于外键的一对多双向关联

    在Java的持久化框架Hibernate中,注解是用于对象关系映射(ORM)的一种强大工具,它可以将数据库的表结构与Java类直接关联起来。本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体...

    HIBERNATE 一对多 onetomany

    在Java持久化框架Hibernate中,"一对一"(one-to-one)和"一对多"(one-to-many)是两种常见的关联关系映射。本教程将详细讲解如何在Hibernate中实现"一对多"关联,并通过实际例子加深理解。 首先,让我们了解什么...

    hibernate03:多对一单向关联、多对一双向关联

    本文主要探讨的是Hibernate中的两种关联关系:多对一单向关联和多对一双向关联。通过理解这两种关联方式,我们可以更好地设计和实现复杂的数据库模型。 首先,我们来看**多对一单向关联**。这种关联意味着一个实体...

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

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

    Hibernate- oneToMany using annotation

    在Java的持久化框架Hibernate中,`@OneToMany`注解是用于表示一对多关系的,这种关系常见于数据库设计中的父表与子表之间。在这个主题中,我们将深入探讨如何在实体类中使用`@OneToMany`注解以及其在实际项目中的...

    hibernate 一对多 增删改差

    在Java的持久化框架Hibernate中,"一对多"(One-to-Many)关系是一种常见的实体关联类型,它代表了一个实体可以与多个其他实体相关联。本篇将详细讲解如何使用Hibernate处理这种关系,并涵盖增、删、改、查(CRUD)...

    hibernate 级联查询

    3. **配置级联**:在Hibernate的映射文件(XML或注解)中,可以指定实体之间的关联是否启用级联,例如在`@ManyToOne`、`@OneToOne`、`@OneToMany`和`@ManyToMany`等关联注解中设置`cascade`属性。 4. **级联查询...

Global site tag (gtag.js) - Google Analytics