如果下面部分内容有不明白的可以查找:
基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911
基于xml的多对一:http://blog.csdn.net/p_3er/article/details/9036759
基于xml的一对多:http://blog.csdn.net/p_3er/article/details/9036921
本文是把多对一与一对多结合起来了,形成一个双向的映射。如果只想要单向的话,把别外一边的注解去掉就是了。
Department:
@Entity
@Table(name = "department", catalog = "hibernate")
public class Department implements java.io.Serializable {
private Integer id;
private String name;
private Set<Employee> employees = new HashSet<Employee>(0);
public Department() {
}
public Department(String name, Set<Employee> employees) {
this.name = name;
this.employees = employees;
}
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "name", nullable = false, length = 45)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "department")
/*
一对多。
department和employee的一对多关系中,当指定department中的mappedBy后,关系只能被employee来主动维护.也就是employee级联的处理department.
之前的映射文件:
<set name="employees" inverse="false" cascade="all">
<key column="department_id"></key>
<one-to-many class="cn.framelife.hibernate.entity.Employee"/>
</set>
*/
public Set<Employee> getEmployees() {
return this.employees;
}
public void setEmployees(Set<Employee> employees) {
this.employees = employees;
}
}
Employee:
@Entity
@Table(name = "employee", catalog = "hibernate")
public class Employee implements java.io.Serializable {
private Integer id;
private Department department;
private String name;
public Employee() {
}
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "department_id")
/*
多对一。
<many-to-one name="department" column="department_id"></many-to-one>
*/
public Department getDepartment() {
return this.department;
}
public void setDepartment(Department department) {
this.department = department;
}
@Column(name = "name", nullable = false, length = 45)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
分享到:
相关推荐
本文主要探讨了使用Hibernate Annotation实现的一对多、一对一和多对多映射关系。 一、一对多/多对一映射 在一对多关系中,一个实体(一方)可以与多个其他实体(多方)相关联。在Hibernate中,我们通过`@...
对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的insertable和updatabel设置为false。这种方案不会得到什么明显的优化,而且还会增加一些附加的UPDATE...
接下来,你可以继续构建其他实体类,定义它们之间的关联,如一对多、多对一、一对一等关系,通过注解如`@OneToMany`、`@ManyToOne`和`@OneToOne`等。同时,你需要配置Spring以处理数据访问,可以使用`@Autowired`...
在Java的持久化框架Hibernate中,注解是用于对象关系映射(ORM)的一种强大工具,它可以将数据库的表结构与Java类直接关联起来。本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体...
Compass Annotation 是 Compass 提供的一种基于 Java 注解(Annotation)的映射方式,它可以将 Java 对象的属性与搜索引擎的文档字段关联起来。通过在 Java 类或其属性上添加特定的注解,Compass 可以自动处理对象到...
在本主题中,我们将深入探讨使用Hibernate注解来实现JPA的一对多、多对多和多对一的关系映射。 1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多...
总结起来,Hibernate Annotation提供了一种直观、方便的方式来实现对象关系映射,包括基于外键的多对一关联。通过在Java类上添加特定的注解,我们可以让Hibernate自动管理数据的持久化,从而简化开发工作。在实践中...
集合映射是处理一对多或多对多关联关系的重要手段。常见的集合类型有`List`、`Set`、`Map`等。通过以下注解可以进行配置: 1. **@ElementCollection**:用于非关联的简单元素集合,如字符串列表或枚举集。 2. **@...
基于Annotation的AOP实现是Spring框架的一个重要特性,它极大地简化了AOP的使用。在本篇文章中,我们将深入探讨基于Annotation的AOP实现,特别是动态代理的理念。 首先,了解什么是AOP。AOP的核心概念是“切面”...
标题中的“基于连接表的单向一对多关联”指的是在一对多关联中,通过一个额外的连接表来维护两个表之间的关系。这种关联方式通常用于两个实体之间没有直接的外键关联,而是通过第三个表来建立联系。 具体实现步骤...
12.4.5 多对一单向关联的annotation注解实现538 12.4.6 一对多双向关联的annotation注解实现540 12.4.7 一对多双向自身关联的annotation注解实现542 12.4.8 多对多单向关联的annotation注解实现543 12.4.9 多对多...
这篇博文"基于Annotation的Servlet配置"探讨了如何使用注解来配置Servlet,让我们深入理解这一现代Web应用开发中的重要概念。 首先,我们来看`@WebServlet`注解。这个注解是Java Servlet API的一部分,可以直接在...
- 要注意处理多对一或一对多的关系,因为这些关系可能需要额外的外键约束。 综上所述,Hibernate的单表继承映射是实现对象模型与数据库模型映射的一种有效方法。它简化了数据库设计,但需要根据具体项目需求权衡...
**Hibernate3** 是一个对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。在Hibernate中,实体类和数据库表之间建立映射,而Annotation则可以用于定义这些映射,例如`@Entity`表示一个数据库表...
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...
在Java的持久化框架Hibernate中,一对多(Many-to-One)和多对一(One-to-Many)的关系映射是数据库关系模型中的常见关联类型。本文将深入探讨这两种关联方式在使用Hibernate时的配置,包括基于注解(Annotation)和...
在这个"基于Annotation的MVC框架SSH示例"中,我们将探讨如何使用注解(Annotation)来简化SSH框架的配置和实现。 1. **Spring框架**:Spring是核心容器,负责管理应用对象的生命周期和依赖注入。在传统的Spring配置...
本文主要介绍了基于Annotation的Java单元测试框架,讨论了Annotation在Java EE中的应用、反射技术的使用和JUnit单元测试框架的结合,建立了一个自动化单元测试框架结构。 一、Annotation概述 Annotation是Java 5中...
在 Spring 框架中,依赖注入(Dependency Injection,简称 DI)是一种重要的设计模式,它允许对象之间的依赖关系在运行时动态地注入,从而降低了组件之间的耦合度。Spring 3.0 开始引入了基于 Annotation 的依赖注入...