`
sean2012
  • 浏览: 46084 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernate应用One2Many

阅读更多
Hibernate应用One2Many

size=x-large]1、一对多或多对一(Group&Person 单向)[/size]
一个团队对应多名成员或多名成员对应一个团队,从单向来操作(主要看Annotation注解@):

package com.sean.model.one2many;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * 一对多:团队对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
@Table(name = "p_group")
public class Group {

	private int id;
	private String name;
	private Set<Person> pset;
	
	@OneToMany
	public Set<Person> getPset() {
		return pset;
	}

	public void setPset(Set<Person> pset) {
		this.pset = pset;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

注意:@Table(name = "p_group")这里配置了与数据库不同的表名,原因是Hibernate在建立SQL语句时会将我们的Group类名,误解为Group By SQL语句,所以如果这里不这样配置一下就会报错。
package com.sean.model.one2many;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 * 一对多:成员对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
public class Person {

	private int id;
	private String name;
	private Group group;

	public Group getGroup() {
		return group;
	}

	public void setGroup(Group group) {
		this.group = group;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

从这里可以看出一对多或多对一,只需要对为一的那边设置@OneToMany,可想而知,双向的操作就是对为多的那边设置@ManyToOne就可以了,请看下面。

2、一对多或多对一(Group&Person 双向)
一个团队对应多名成员或多名成员对应一个团队,从双向来操作(主要看Annotation注解@):

Group类:
package com.sean.model.one2many;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * 一对多:团队对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
@Table(name = "p_group")
public class Group {

	private int id;
	private String name;
	private Set<Person> pset;
	
	@OneToMany
	public Set<Person> getPset() {
		return pset;
	}

	public void setPset(Set<Person> pset) {
		this.pset = pset;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}


Person类:
package com.sean.model.one2many;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 * 一对多:成员对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
public class Person {

	private int id;
	private String name;
	private Group group;
         @ManyToOne
	public Group getGroup() {
		return group;
	}

	public void setGroup(Group group) {
		this.group = group;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

分享到:
评论
1 楼 jeson0725 2013-05-15  
         

相关推荐

    hibernate中one2many映射

    在Java的持久化框架Hibernate中,One-to-Many映射是一种常见的关系映射方式,它表示一个实体(比如一个用户)可以与多个其他实体(比如用户的订单)进行关联。在这个场景下,"用户"是一方,称为"One","订单"是另...

    Hibernate one-to-many / many-to-one关系映射

    "Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...

    Hibernate应用例子many-to-many

    本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...

    hibernate_many2one

    在深入探讨Hibernate中的many2one关系之前,我们首先需要理解Hibernate框架本身以及它在Java开发领域扮演的角色。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与...

    (4)Hibernate中的many-to-one和one-to-many关系

    2. one-to-many关系 相反,one-to-many关系表示在一个实体类中,一个实例可以与另一个实体类的多个实例相关联。例如,一个部门可以有多名员工,而一个员工只属于一个部门。在Hibernate中,我们通过`@OneToMany`注解...

    Hibernate one to many(many to one) 配置

    标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    综上所述,理解并熟练运用Hibernate的Many-to-One关系映射,对于提升Java应用的数据处理效率和代码可维护性至关重要。在实际开发中,我们需要根据业务需求灵活选择配置,同时关注性能优化,以实现高效稳定的数据库...

    hibernate_6映射关系之one2many.zip_hibernate

    2. **XML配置**:在Hibernate的配置文件中,可以通过`&lt;set&gt;`或`&lt;list&gt;`标签来定义`One-to-Many`关系。`&lt;key&gt;`标签用于定义关联的外键字段,`&lt;one-to-many&gt;`标签则指定被关联的实体类。 3. **反向引用**:在`Many`端...

    Hibernate-one-to-many

    本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...

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

    ### Hibernate Many-to-One (多对一) 及 Cascade (级联) #### 一、Many-to-One(多对一) 在数据库设计中,实体之间的关系主要包括一对一、一对多、多对多等几种类型。而在ORM(对象关系映射)框架Hibernate中,...

    Hibernate one-to-many-annotation

    在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...

    hibernate 全面学习->hibernate 关联映射学习

    例如,`hibernate_many2one`可能展示了多个订单对应一个用户的场景。在这个关系中,我们将研究@ManyToOne注解的用法,以及如何在实体类中定义外键字段。 最后,多对多关联映射(Many-to-Many)是最复杂的关系类型,...

    Hibernate Tutorial 04 (Many-to-one and One-to-one Association

    为了使用 `publisher` 属性,我们需要在 `Book` 类的 Hibernate 映射文件中添加 `&lt;many-to-one&gt;` 映射。这将在 `BOOK` 表中添加一个名为 `PUBLISHER_ID` 的列,并存储关联出版商的 ID。 ```xml &lt;!-- 其他属性的...

    Hibernate Mapping Many-to-One 实例 内附源代码及附件下载

    本实例将详细讲解如何在Hibernate中实现Many-to-One关系映射,这是一种常见的数据库关联,表示一个实体可以与多个其他实体相关联。 在Many-to-One关系中,通常一个实体(如部门)可以有多个相关实体(如员工),而...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在Hibernate中,一对一唯一外键关联映射可以通过 `&lt;many-to-one&gt;` 标签来配置。例如,以下是Person实体与IdCard实体的一对一唯一外键关联映射配置: ```xml &lt;class name="Person" table="person2" &gt; &lt;many...

    hibernate_one2many_2.zip_Java编程_Java_

    2. **使用注解**:在现代的Hibernate应用中,更倾向于使用注解来简化配置。在主实体类中,我们添加`@OneToMany`注解,而在从属实体类中添加`@ManyToOne`注解,用来表示关联关系。 ```java @Entity public class ...

    hibernate 关联映射(一) many to one

    在`hibernate_many2one`目录中的映射文件(可能是`.hbm.xml`格式)也需要相应的配置。对于`Employee`类,映射文件可能会包含以下内容: ```xml &lt;hibernate-mapping&gt; &lt;!-- ... --&gt; &lt;many-to-one name=...

    day36 07-Hibernate抓取策略:many-to-one上的抓取策略

    在提供的文件"hibernate_day03"中,可能包含相关的代码示例和更深入的解释,通过阅读和实践这些内容,你可以更好地掌握Hibernate的抓取策略,特别是对于"many-to-one"关系的应用。记住,理论知识固然重要,但实践...

    hiberante - one to many - update

    标题中的“Hibernate - one to many - update”指向的是一个关于Hibernate框架中的一对多关联关系在更新操作时的专题。Hibernate是Java开发中常用的持久化框架,它简化了数据库操作,使得开发者可以更加关注业务逻辑...

    hibernate面试题2

    - 通过配置文件如`one-to-many`、`many-to-one`、`many-to-many`等映射关系,实现类与类的关联。 8. **Hibernate缓存机制**: - **一级缓存**(内部缓存):默认事务级缓存,每个Session内部维护。 - **二级缓存...

Global site tag (gtag.js) - Google Analytics