`

hibernate删除一对多关联关系时注意的地方

 
阅读更多
patient.hbm.xml中

		
<many-to-one name="person" class="com.clinic.model.Person" fetch="select" >
            <column name="person_id" />
</many-to-one>

person.hbm.xml中
		<set name="patients" table="patient"   cascade="all" inverse="true" lazy="false">
			<key column="person_id"/>
			<one-to-many class="com.clinic.model.Patient"/>
		</set>

看到过N中版本,说cascade放的位置,经过无数次实验,发现居然是这样放,不是这样会对数据操作失败。

Patient.java 多的一方
public class Patient implements Serializable{

private int id;
private Person person;

public Patient() {
		// TODO Auto-generated constructor stub
	}
//一个空的和一个加了全部属性的构造函数,这两个构造函数绝对不能省
public Patient(int id,Person person) {
		this.id = id;
		this.person = person;
	}
}


Person.java
public class Person implements Serializable{
private int id;
private Set<Patient> patients=new HashSet<Patient>();

//同上,两个构造函数不能省

}


做删除时,一定要加flush要不然不成功:
this.getHibernateTemplate().delete(
				(Patient)this.getHibernateTemplate().get(Patient.class, id));
		this.getHibernateTemplate().flush();

在控制台中测试时,这样就成功了:
		Patient p = null;
		p = (Patient) session.load(Patient.class, 18);
		session.delete(p);

分享到:
评论

相关推荐

    Hibernate映射一对多关联关系

    ### Hibernate映射一对多关联关系 #### 知识点概览 - **概念解析**:一对多(One-to-Many)关联关系的概念及其在Hibernate中的实现方式。 - **域模型设计**:创建具有一个实体与多个实体关联的域模型。 - **关系...

    hibernate一对一关联关系

    在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...

    hibernate实现多对多关联关系源码

    在Java的持久化框架Hibernate中,多对多...总之,理解并正确实现Hibernate的多对多关联关系对于开发高效、健壮的Java应用至关重要。通过源码学习,开发者可以更好地掌握数据关系的管理和持久化操作,从而提升软件质量。

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

    本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...

    hibernate外键实现一对一双向关联关系源码

    本主题将深入探讨如何使用Hibernate实现一对一双向关联关系,并通过源码解析这一过程。 一对一双向关联关系指的是两个实体类之间存在一对一的关系,且在各自的类中都可以直接访问对方。这种关联可以通过注解或XML...

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

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

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    hibernate多对一关联关系

    在Java的持久化框架Hibernate中,"多对一"关联关系是一种常见的对象关系映射(ORM)设计,它表示一个实体(子项)可以与多个其他实体(父项)相关联,而每个父项可能被多个子项引用。在数据库层面,这通常对应于一个...

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

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

    hibernate多对多双向关联

    10. **最佳实践**:如避免过多的中间表查询,合理设计关联关系,以及在不必要时选择一对一或一对多替代多对多等。 总结来说,理解并能正确使用Hibernate中的多对多双向关联是Java开发中的重要技能,涉及到实体设计...

    hibernate使用主键关联的一对一关系

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

    Hibernate ORM - 一对一主键关联关系

    在Hibernate中,一对一的主键关联关系可以通过以下几种方式配置: 1. **注解配置**: 使用`@OneToOne`注解来声明一对一关系,同时通过`@PrimaryKeyJoinColumn`注解指定共享的主键列。例如: ```java @Entity ...

    Hibernate多对多关联关系demo

    本示例"Hibernate多对多关联关系demo"将深入探讨如何在实际开发中设置和操作这种关系。我们将探讨以下关键知识点: 1. **映射配置**: 在Hibernate中,多对多关联关系通过`&lt;many-to-many&gt;`标签来实现。你需要在两...

    Hibernate基于连接表的一对多单向关联

    在一对多关联中,通常会通过一个连接表(或称为中间表)来维护两个表之间的关系。这个表通常包含两个外键,分别引用两个参与关联的表。在Hibernate中,这种关联可以通过配置XML映射文件或者使用注解来实现。 接下来...

    Hibernate 关联关系解除

    在名为"Practise"的项目实践中,我们可以创建一个简单的实体关系,如一个用户(User)可以拥有多个订单(Order),然后尝试解除这个一对多关联。首先,我们需要在User类中设置一个List类型的Order集合,并使用@OneToMany...

    Hibernate一对一主键关联映射(双向关联)

    然而,需要注意的是,由于这种关联是双向的,所以在处理关联关系时,要特别注意同步两个方向的引用,避免出现数据不一致的情况。 在实际开发中,我们可能还会遇到一些问题,比如懒加载(Lazy Loading)、EAGER加载...

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

    6. ** Cascade操作**:在配置一对多关联时,可以设置级联操作,比如CascadeType.ALL,这意味着对父对象的操作(如保存、删除)会自动应用到所有子对象。 7. **Fetch策略**:可以选择懒加载(Lazy Fetch)或立即加载...

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

    在Java的持久化框架Hibernate中,单向一对多关联映射是常见的数据关系处理方式,尤其是在处理数据库中的实体类和表之间的关系时。本主题主要关注如何使用注解来实现这种映射。Hibernate通过注解使得对象关系映射...

    hibernate双向一对多关联映射(XML)

    在Java的持久化框架Hibernate中,双向一对多关联映射是一种常见的关系数据库模型与对象模型之间的映射方式。这种映射允许在一个实体类中存在多个另一个实体类的实例,而在另一个实体类中也可能存在对第一个实体类的...

    Hibernate之一对多关联

    本篇文章主要探讨的是Hibernate中的一对多关联映射,这是一种常见的对象关系映射(ORM)配置,用于表示一个实体与多个其他实体之间的关系。 在关系型数据库中,一对多关联是指一个表(父表)中的记录可以对应另一个...

Global site tag (gtag.js) - Google Analytics