`

Hiberante(七) Annotation的方式实现ManyToOne,OneToOne,ManyTOMany

 
阅读更多

 Annotation实现ManyToOne

    实体类:

   CassRoom.java

@Entity //注解成一个实体类
@Table(name="t_classroom") //对应数据库中表
public class ClassRoom {
    private int id;
    private String name;
    private int grade;
    
    @Id  //主键
    @GeneratedValue //主键生成方式-->自增长
    public int getId() {
	return id;
    }

 省略其他get,set(不配置其他属性对应的数据库中属性,就是以默认值)
}

 Student.java

 

@Entity
@Table(name = "t_student")
public class Student {

	private int id;
	private String name;
	private String no;
	private ClassRoom classroom;

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

     	@ManyToOne(fetch = FetchType.LAZY)// fetch=FetchType.LAZY 延迟加载
	@JoinColumn(name = "cid")//外键
	public ClassRoom getClassroom() {
		return classroom;
	}
  省略其他get,set
}

 

Annotation 实现OneToOne

 

  实体类:

  Person.java

 

@Entity
@Table(name="t_person")
public class Person {
     
	private int id;
	private String name;
	private IDCard idcard;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

        @OneToOne
	@JoinColumn(name="cid")
	public IDCard getIdcard() {
		return idcard;
	}
   省略其他get,set
}

 

  IDCarid.java

 

@Entity
@Table(name="t_idcard")
public class IDCard {
   
	private int id;
	private String no;
	private Person person;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	@OneToOne(mappedBy="idcard")//当双向关联时,设置下由谁维护关系
	public Person getPerson() {
		return person;
	}
  省略其他get,set
}

 

Annotation 实现ManyToMany

 

  实体类

 

  Teacher.java

 

@Entity
@Table(name="t_teacher")
public class Teacher {
	private int id;
	private String name;
	private Set<TeacherCourse> tcs;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	@OneToMany(mappedBy="teacher")
	@LazyCollection(LazyCollectionOption.EXTRA)
	public Set<TeacherCourse> getTcs() {
		return tcs;
	}

 

  Course.java

@Entity
@Table(name="t_course")
public class Course {
	private int id;
	private String name;
	private Set<TeacherCourse> tcs;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	@OneToMany(mappedBy="course")
	@LazyCollection(LazyCollectionOption.EXTRA)
	public Set<TeacherCourse> getTcs() {
		return tcs;
	}

 

TeacherCourse.java

 

@Entity
@Table(name="t_teacher_course")
public class TeacherCourse {
	private int id;
	private double ach;
	private Teacher teacher;
	private Course course;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	@ManyToOne
	@JoinColumn(name="tid")
	public Teacher getTeacher() {
		return teacher;
	}
		
	@ManyToOne
	@JoinColumn(name="cid")
	public Course getCourse() {
		return course;
	}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Hibernate Annotation 中文文档

    - `@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany`: 定义不同类型的关联关系。 - `@JoinColumn`: 在关联关系中,指定外键列的信息。 **3. 注解的使用示例** 在实体类中,我们可以直接使用这些注解来定义...

    权限管理 struts2 hiberante3.5 spring3.0 annotation

    Hibernate3.5是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来处理数据库操作。在权限管理中,Hibernate可以用来存储用户的权限信息。通过注解如`@Entity`、`@Table`、`@Column`等,可以轻松地定义...

    hiberante查询方式使用详解

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。本文将深入探讨Hibernate的四种主要查询方式:HQL(Hibernate Query...

    hiberante3 注解帮助文档

    hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档

    hiberante 源码 配置资料

    4. 查询机制:Hibernate Query Language (HQL) 和 Criteria API 是两种主要的查询方式。`org.hibernate.query`包下的Query接口和Criteria接口提供了丰富的查询功能,源码分析有助于理解其底层实现。 二、Hibernate...

    springmvc hiberante

    通过编写实体类和映射文件,开发者可以避免直接编写SQL语句,而是使用对象的方式操作数据。Hibernate提供了事务管理、缓存机制以及查询语言HQL,极大地提高了开发效率。 在描述中提到的"添加各种项目需要的配置",...

    hibernate annotation

    - `@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany`: 这些注解用于处理对象之间的关联关系。例如,一个用户可以有多个订单: ```java @Entity @Table(name = "users") public class User { // ... @...

    最新springboot2hiberante5项目

    最新springboot2基础hiberante5完整项目,打包jar,运行jsp,包括后台与前台,拦截器,登录,后台下载就可以使用,注意不是jpa,里面有完整Dao,千万级数据项目分离的代码,为了适合老项目开发特意集成hiberante5....

    DAO层中对Hiberante

    这个设计提高了代码的可复用性和可维护性,因为所有具体的DAO实现都可以继承自`HibernateDAO`,从而避免在每个DAO中重复写相似的事务管理和会话管理代码。 首先,`HibernateDAO` 类中定义了两个关键成员变量: 1. `...

    spring+mvc+hiberante

    DAO(数据访问对象)接口和实现类负责通过 SessionFactory 执行 CRUD(创建、读取、更新、删除)操作。 事务管理是整合 Spring 和 Hibernate 的关键部分。Spring 提供了声明式事务管理,可以在方法级别或类级别定义...

    maven+spring+springmvc+hiberante+easyui实现的增删改查

    在本项目中,我们主要探讨的是一个基于"Maven+Spring+SpringMVC+Hibernate+EasyUI"技术栈实现的典型企业级应用系统,主要用于完成基本的CRUD(增删改查)操作。以下是对这些技术及其在项目中的作用的详细说明: 1. ...

    hiberante中文帮助文档

    9. **关联映射**: Hibernate支持一对一、一对多、多对一和多对多等各种关联映射,如`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`,使得对象之间的关系能自然地体现在数据库设计中。 10. **懒加载和...

    Hiberante3.jar + API

    这个JAR文件包含了所有必要的类和库,使得开发者可以直接在项目中引用,实现对数据库的便捷操作。 二、核心概念与组件 1. SessionFactory:它是整个Hibernate的核心,负责创建Session实例,配置信息(如数据库连接...

    hiberante5.0.7安装jar包

    除了HQL,Hibernate还提供Criteria API进行动态查询,它是一种更面向对象的查询方式,可以在运行时构建查询。这对于构建复杂的、参数化的查询非常有用。 **八、事务管理** Hibernate支持自动和手动的事务管理。在...

    Hiberante 有关jar包

    Hibernate Tools是一套全新而且完整的面向Hibernate3的工具集合,它包含了Eclipse插件和Ant编译流程。Hibernate Tools是JBoss Tools的核心组件,所以他也是JBoss Developer Studio的一部分

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    在这个DEMO中,Spring2.5.6采用了Annotation注解的方式,使得代码更加简洁,无需XML配置文件,只需在类或方法上添加注解,就可以声明bean和其依赖。Spring还提供了事务管理、AOP(面向切面编程)等功能,增强了应用...

    hiberante4.2.3-part01

    4. **级联操作**:通过`@OneToMany`、`@ManyToOne`和`@ManyToMany`注解,我们可以定义实体之间的关联,并使用`cascade`属性来控制关联的级联操作,如保存、删除等。 5. **缓存机制**:Hibernate支持一级缓存...

    hiberante annotations reference_cn

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`: 描述实体间的一对多、多对一、一对一和多对多关系。 - `@JoinColumn`: 在关联关系中定义外键列。 - `@Temporal`: 用于日期和时间类型的字段,指定其...

    Hiberante中的五大核心接口.txt

    #### 七、总结 通过以上五个核心接口,Hibernate实现了与数据库的交互,同时也为开发者提供了灵活的编程模型。掌握这些接口的使用方法对于高效地开发基于Hibernate的应用程序至关重要。在未来的学习和实践中,深入...

    hibernate使用主键关联的一对一关系

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

Global site tag (gtag.js) - Google Analytics