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

第十章 基于Annotation的关系映射 多对多

 
阅读更多

如果下面部分内容有不明白的可以查找:

基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911

基于xml的多对多:http://blog.csdn.net/p_3er/article/details/9053415


Student:
@Entity
@Table(name = "student", catalog = "hibernate")
public class Student implements java.io.Serializable {
	private Integer id;
	private String SName;
	private Set<Teacher> teachers;

	public Student() {
	}

	@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 = "s_name", nullable = false, length = 45)
	public String getSName() {
		return this.SName;
	}

	public void setSName(String SName) {
		this.SName = SName;
	}

	@ManyToMany(cascade=CascadeType.ALL,targetEntity=cn.framelife.hibernate.entity.Teacher.class)
	@JoinTable(name="s_t",catalog="hibernate",
			joinColumns={@JoinColumn(name="student_id")},
			inverseJoinColumns={@JoinColumn(name="teacher_id")}
	)
/*
映射文件方式比较:
<set name="teachers" table="s_t" cascade="all">
        	<key column="student_id"/>
        	<many-to-many column="teacher_id" class="cn.framelife.hibernate.entity.Teacher"></many-to-many>
        </set>
*/
	public Set<Teacher> getTeachers() {
		return teachers;
	}

	public void setTeachers(Set<Teacher> teachers) {
		this.teachers = teachers;
	}
}

Teacher:
@Entity
@Table(name = "teacher", catalog = "hibernate")
public class Teacher implements java.io.Serializable {
	private Integer id;
	private String TName;
	private Set<Student> students;

	public Teacher() {
	}

	@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 = "t_name", nullable = false, length = 45)
	public String getTName() {
		return this.TName;
	}

	public void setTName(String TName) {
		this.TName = TName;
	}

	@ManyToMany(cascade=CascadeType.ALL,targetEntity=cn.framelife.hibernate.entity.Student.class)
	@JoinTable(name="s_t",catalog="hibernate",
			joinColumns={@JoinColumn(name="teacher_id")},
			inverseJoinColumns={@JoinColumn(name="student_id")}
	)
	public Set<Student> getStudents() {
		return students;
	}

	public void setStudents(Set<Student> students) {
		this.students = students;
	}
}




分享到:
评论

相关推荐

    Hibernate_Annotation关联映射

    对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的insertable和updatabel设置为false。这种方案不会得到什么明显的优化,而且还会增加一些附加的UPDATE...

    compass annotation关联关系

    Compass Annotation 是 Compass 提供的一种基于 Java 注解(Annotation)的映射方式,它可以将 Java 对象的属性与搜索引擎的文档字段关联起来。通过在 Java 类或其属性上添加特定的注解,Compass 可以自动处理对象到...

    基于annotation的aop实现

    基于Annotation的AOP实现是Spring框架的一个重要特性,它极大地简化了AOP的使用。在本篇文章中,我们将深入探讨基于Annotation的AOP实现,特别是动态代理的理念。 首先,了解什么是AOP。AOP的核心概念是“切面”...

    Hibernate关联关系的CRUD和集合映射(annotation)

    集合映射是处理一对多或多对多关联关系的重要手段。常见的集合类型有`List`、`Set`、`Map`等。通过以下注解可以进行配置: 1. **@ElementCollection**:用于非关联的简单元素集合,如字符串列表或枚举集。 2. **@...

    基于Annotation的Servlet配置

    在这个例子中,`name`属性定义了Servlet的名称,`urlPatterns`定义了多个URL映射,而`loadOnStartup`则指定了Servlet在应用启动时的加载顺序。 除了Servlet配置,基于Annotation的过滤器(Filter)和监听器...

    精通Java Web整合开发(第2版)

    第12章 基于annotation注解技术的ssh 2整合开发 12.1 初识annotation522 12.2 亲身体验annotation的威力524 12.3 struts 2.x的annotation插件convention-plugin528 12.4 hibernate 3.x的annotation解决之道532 ...

    S2SH整合基于annotation

    **Hibernate3** 是一个对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。在Hibernate中,实体类和数据库表之间建立映射,而Annotation则可以用于定义这些映射,例如`@Entity`表示一个数据库表...

    基于Annotation的Java单元测试框架.pdf

    "基于Annotation的Java单元测试框架" 本文主要介绍了基于Annotation的Java单元测试框架,讨论了Annotation在Java EE中的应用、反射技术的使用和JUnit单元测试框架的结合,建立了一个自动化单元测试框架结构。 一、...

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

    总结起来,Hibernate Annotation提供了一种直观、方便的方式来实现对象关系映射,包括基于外键的多对一关联。通过在Java类上添加特定的注解,我们可以让Hibernate自动管理数据的持久化,从而简化开发工作。在实践中...

    基于Annotation的MVC框架SSH示例.rar

    在这个"基于Annotation的MVC框架SSH示例"中,我们将探讨如何使用注解(Annotation)来简化SSH框架的配置和实现。 1. **Spring框架**:Spring是核心容器,负责管理应用对象的生命周期和依赖注入。在传统的Spring配置...

    基于Annotation的s2sh整合配置实现分页功能

    基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能

    基于annotation s2sh实现零配置的CRM

    【基于Annotation的S2SH实现零配置CRM】 在IT行业中,CRM(Customer Relationship Management)系统是一种用于管理企业与客户之间关系的重要工具。S2SH,即Struts2、Spring和Hibernate的组合,是Java Web开发中常用...

    Hbernate Annotation多对多映射

    NULL 博文链接:https://xhfei.iteye.com/blog/691322

    基于Annotation并对DAO层封装具有分页功能的S2SH整合实例

    在这个基于Annotation并对DAO层封装具有分页功能的S2SH整合实例中,我们将探讨如何利用这些技术的特性来提高开发效率和代码可维护性。 首先,让我们深入了解一下Struts2。Struts2是基于MVC模式的开源Web应用框架,...

    Hibernate继承映射(annotation)

    - 要注意处理多对一或一对多的关系,因为这些关系可能需要额外的外键约束。 综上所述,Hibernate的单表继承映射是实现对象模型与数据库模型映射的一种有效方法。它简化了数据库设计,但需要根据具体项目需求权衡...

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

    本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...

Global site tag (gtag.js) - Google Analytics