`
onepiece021
  • 浏览: 38625 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibenate ManyToOne, oneToMany配置

阅读更多
hibernate 4.3

// 宿舍, 一端
public class Dorm {
	@Id
	@GeneratedValue 
	private Long id;
	// 宿舍名称
	@NotBlank
	private String name;
	// 住宿人数
	@NotNull
	private Integer stayCount;
	// 床位
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, orphanRemoval=true, mappedBy="dorm")
        // @JoinColumn(name="dorm_id")
	private List<Bed> beds = new ArrayList<Bed>();

        ...
}

// 床位, 多端
public class Bed {
	@Id
	@GeneratedValue 
	private Long id;
	// 床位
	@NotBlank
	private String number;
	// 宿舍	
	@ManyToOne
        // @JoinColumn(name="dorm_id")
	@JsonIgnore // json数据获取的时候要JsonIgnore加忽略dorm属性,因为dorm.getBed(),获取床位属性, 如果在bed.getDorm()再获取属性, 就会形成死循环
	private Dorm dorm;
        ...
}

hibernate默认的描述关系是创建一个关联表, 根据sql打印, 每次修改bed, 都会将关联表的记录删除再逐个添加.
而关联关系添加 @JoinColumn(name="dorm_id")后, 不再生成关联表,而是通过字段dorm_id关联, 更新删除bed的效率高很多,但是在维护关系的时候, bed需要手动设置dorm,
public void saveOrUpdate(Dorm dorm){ 
		for(Bed bed : dorm.getBeds()){
			bed.setDorm(dorm);
		}
		dormDao.save(dorm);
	}

这个是多一个操作的地方.

设置orphanRemoval=true一大好处, 当dorm中的bed记录被删除(dorm的数据有前台提交),保存dorm时, hibernate会自动的同步数据库, 这下就省事多了
mappedBy="dorm" 关联到多端的dorm属性,利用dorm属性进行关联.与添加@JoinColumn(name="dorm_id") 有相同的功效
分享到:
评论

相关推荐

    Hibernate- oneToMany using annotation

    首先,我们需要理解`@OneToMany`的基本配置: 1. **mappedBy**:此属性用于指定被关联方(子实体)中的引用字段,通常是一个`@ManyToOne`注解的字段,表明了反向的一对一关系。 2. **fetch**:定义加载策略,可以是`...

    HIBERNATE 一对多 onetomany

    在Hibernate中,这种关系可以通过在实体类中定义`@OneToMany`注解来表示。 **配置实体类** 1. **父实体类**:在这个关系中,"一"端的实体称为父实体。例如,我们用`Student`作为父实体,它有一对多的课程关联。在`...

    HIbernate-OneToMany:HIbernate-OneToMany Annotations 在实体之间具有 PKFK 关系

    在实际应用中,我们需要配置Hibernate的SessionFactory,并创建实体的Session,通过Session进行CRUD操作。在处理`@OneToMany`关系时,需要注意避免N+1查询问题,可以通过HQL或Criteria API进行优化。 总结来说,`@...

    Hibernate映射关系配置:XML方式和注解方式

    4. **关系映射**:注解如`@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany`等,它们在实体类的属性上声明,描述实体间的关联关系。 **标签解析** "源码"和"工具"这两个标签暗示了讨论可能涉及实际代码示例...

    Hibernate-OneToMany-Advance-udemy

    本课程"Hibernate-OneToMany-Advance-udemy"聚焦于Hibernate中的一对多关联映射,这是一种常见的数据库关系模型,尤其在处理具有层级结构的数据时显得尤为重要。 在Hibernate中,一对多关联映射表示一个实体可以与...

    Struts+Spring+Hibernate注解零配置整合

    通过@Entity、@Table、@Id等注解,可以将Java实体类映射到数据库表,而@ManyToOne、@OneToMany等注解则用于描述对象之间的关系。此外,@GeneratedValue可以用于自动生成主键,@Transactional注解也可以在这里用于...

    hibernate的xml配置关系例子

    在这个"hibernate的xml配置关系例子"中,我们将探讨如何使用XML配置文件来定义Java对象与数据库表之间的映射关系。 1. Hibernate XML配置文件: Hibernate的核心配置文件通常是`hibernate.cfg.xml`,这个文件包含...

    Hibernate原理与配置快速入门

    - **一对多、多对一、多对多关联映射**: Hibernate 支持各种关联关系,通过 @OneToMany、@ManyToOne、@ManyToMany 注解实现。 **4. 实例应用** - 创建一个简单的用户管理系统,定义 User 实体类,包含 id、name、...

    springmvc + hibernate annotation 配置

    对于字段,`@Column`注解指定列名,`@ManyToOne`, `@OneToOne`, `@OneToMany`, `@ManyToMany`等注解定义关联关系。 5. **DAO层**:创建DAO(Data Access Object)接口和实现类,使用Hibernate的Session API进行数据...

    hibernate各种常用关联关系的基本配置

    本篇文章将深入探讨Hibernate中常见的几种关联关系及其基本配置。 一、一对一(OneToOne)关联 在一对一关联中,一个实体对象只对应数据库中的一个记录。配置方式通常通过`@OneToOne`注解实现,可以设置`mappedBy`...

    hibernate对象三状态及OneToOne&OneToMany&ManyToMany

    本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 一、Hibernate对象三状态 1. 游离态(Detached):对象在应用程序中创建,但尚未与Session...

    Hibernate 原理与配置快速入门(转)

    4. **集合映射与关联关系**: Hibernate 支持一对多、多对一、一对一和多对多的关联映射,如 `@OneToMany`, `@ManyToOne`, `@OneToOne` 和 `@ManyToMany`。 5. **级联操作**: 通过设置级联属性,如 `cascade="save-...

    hibernate基本配置及使用方法

    【hibernate基本配置及使用方法】 Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与关系数据库之间的交互。本教程将详细解释Hibernate的基本配置和使用步骤,帮助初学者快速掌握这一强大...

    Hibernate原理与配置快速入门.rar

    3. 关联映射:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)关系。 4. 集合映射:List、Set、Map等集合类型与数据库表列的映射。 十、最佳实践 1. 使用SessionFactory...

    struts2-spring4-hibernate4_xml配置的框架

    例如,Spring4的`@Autowired`注解可以自动装配Bean,而Hibernate4的`@ManyToOne`、`@OneToMany`等注解用于描述对象间的关系。 在实际项目中,这个框架组合可以实现业务逻辑、数据持久化和用户交互的高效协同。...

    Hibernate映射配置实例大全(详细总结)

    对于关联关系,有`@OneToOne`, `@ManyToOne`, `@OneToMany`, `@ManyToMany`等注解。 此外,集合映射是Hibernate中的一个重要部分。例如,`&lt;set&gt;`用于映射Java集合到数据库的表,`&lt;list&gt;`映射到有序的列表,`&lt;map&gt;`...

    spring-hibernate注解配置源码

    此外,`@ManyToOne`、`@OneToOne`、`@OneToMany`和`@ManyToMany`注解用于建立对象间的关联关系。 整合Spring和Hibernate时,我们通常会使用Spring的数据访问抽象层,如`@Transactional`注解来标记事务方法,Spring...

    注解配置 javabean hibernate 关联关系

    在Hibernate框架中,注解配置被广泛用于简化对象关系映射(ORM)的配置,使得Java Bean可以直接与数据库表进行关联。本篇文章将深入探讨如何使用注解配置Java Bean并建立Hibernate的关联关系。 首先,我们需要理解...

    Hibernate注解和xml配置介绍

    另外,外键关系可以通过@ManyToOne或@OneToMany等注解来定义一对多或多对一的关系。 另一方面,XML配置则提供了一种更为传统的方式来描述映射关系。通过编写XML文件来定义实体类和数据库表的映射,以及配置其他一些...

Global site tag (gtag.js) - Google Analytics