`
ynp
  • 浏览: 437931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate关系映射总结

阅读更多
其实这些东东完全可以参考帮助文档;这里只是总结下。
》》》一对一映射
妻子类
	@OneToOne
	@JoinColumn(name="husbandID")
	public Husband getHusband() {
		return husband;
	}


丈夫类
	@OneToOne(cascade=CascadeType.ALL,mappedBy="husband")
	public Wife getWife() {
		return wife;
	}

》》》一对多映射
班级类
	@OneToMany(mappedBy="class1",fetch=FetchType.LAZY)
	public Set<Student> getStudents() {
		return students;
	}


学生类
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="classID")
	public Class1 getClass1() {
		return class1;
	}


》》》多对多映射

用户类
	@ManyToMany(targetEntity=com.xj.model.Role.class,
			cascade=CascadeType.PERSIST)
	@JoinTable(name="t_user_role",
			joinColumns=@JoinColumn(name="userID"),
			inverseJoinColumns=@JoinColumn(name="roleID"))
	public Set<Role> getRoles() {
		return roles;
	}


角色类
	@ManyToMany(targetEntity=com.xj.model.User.class,
			mappedBy="roles")
	public Set<User> getUsers() {
		return users;
	}

》》》联合主键映射
有三种方式 这里只是其中一种。

主键类 (实现Serializable接口,重写hashCode、equals方法)
public class NamePK implements Serializable{
	private String firstName;
	private String lastName;
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((firstName == null) ? 0 : firstName.hashCode());
		result = prime * result
				+ ((lastName == null) ? 0 : lastName.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final NamePK other = (NamePK) obj;
		if (firstName == null) {
			if (other.firstName != null)
				return false;
		} else if (!firstName.equals(other.firstName))
			return false;
		if (lastName == null) {
			if (other.lastName != null)
				return false;
		} else if (!lastName.equals(other.lastName))
			return false;
		return true;
	}
}


用到主键类的学生类
@IdClass(NamePK.class)
@Entity
@Table(name="t_student")
public class Student {
......
	@Id
	public String getFirstName() {
		return firstName;
	}
	@Id
	public String getLastName() {
		return lastName;
	}
}


》》》组件映射
组件类
@Embeddable
public class NamePK implements Serializable{


用到组件类的类
private NamePK namePK;


》》》外键映射
学生类
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="classID")
	public Class1 getClass1() {
		return class1;
	}


》》》继承映射

若把父类@MappedSuperclass换成@Entity则只生成一张表 且包含所有子类信息!!

父类Cat类
@MappedSuperclass
public class Cat {}


子类1
@Entity
@Table(name="t_beijingcat")
public class BeijingCat extends Cat {


子类2
@Entity
@Table(name="t_shanghaiCat")
public class BeijingCat extends Cat {

0
0
分享到:
评论

相关推荐

    hibernate映射关系总结

    hibernate开发的关系: one-to-one,many-to-one,many-to-many学习经验总结

    Hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...

    hibernate表的映射关系总结

    hibernate表映射一直记不住,这次总结一下,放便下次使用。。。

    hibernate关系映射网址

    ### Hibernate关系映射详解 #### 一、引言 Hibernate是一种广泛使用的Java持久化框架,它简化了对象关系映射(Object-Relational Mapping,简称ORM)的过程,使得开发人员可以更加专注于业务逻辑的实现而无需过多...

    hibernate的关系映射

    **二、Hibernate关系映射的类型** 1. **一对一(OneToOne)**: 表示一个实体对应另一个实体的唯一实例。这可以通过在两个类中都定义`@OneToOne`注解来实现,并通过`mappedBy`属性指定被引用的一方。 2. **一对多...

    Hibernate映射关联关系总结

    对Hibernate映射关系详细总结,可以帮助你学习Hibernate知识

    hibernate映射枚举类型

    Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...

    hibernate实体关联关系映射

    ### Hibernate实体关联关系映射详解 #### 一、引言 Hibernate作为一种强大的对象关系映射(Object Relational Mapping,简称ORM)框架,在Java开发领域扮演着极其重要的角色。它不仅简化了持久化层的开发工作,...

    hibernate集合的映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象的集合属性上,以便实现对象关系映射(ORM)。本文将深入探讨Hibernate中的四种主要集合映射类型:Set、List、Array和Map,以及它们在实际...

    Hibernate_关联关系映射配置

    在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何...

    hibernate关联关系映射

    总结,Hibernate的关联关系映射是其强大的功能之一,通过合理的配置,我们可以轻松地在Java对象和数据库表之间建立复杂的关系,实现对象的持久化。理解并熟练运用这些映射方式,对于提升Java应用的数据管理效率至关...

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

    "Hibernate映射配置实例大全"是一个全面深入的资源,旨在帮助开发者理解和掌握如何有效地配置Hibernate以实现对象关系映射(ORM)。在这个文档中,我们将探讨各种关键的映射配置方法,以及相关的实例。 首先,我们...

    hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java编程中,Hibernate是一个流行的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为对Java对象的操作,从而简化了数据存取的过程。关系映射是Hibernate的核心特性之一...

    Hibernate知识点总结

    Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元数据,将应用业务逻辑中使用的Java对象自动持久化到...

Global site tag (gtag.js) - Google Analytics