import javax.persistence.*;
一对多:
/**
* OneToMany:指明Classes与Student之间是一对多关系,Classes是主类,Student是关系类
* cascade:定义类和类之间的级联关系,对当前类对象及其关联类对象采取相同的操作
* fetch:定义检索策略,FetchType.EAGER(主类加载时关系类就加载)和FetchType.LAZY(关系类调用时才加载),在这里当然要lazy
* mappedBy:定义类之间的双向关系,如果类之间是双向关系就需要定义,其值是"多"方类中"一"方的变量名
* targetEntity:关系类的类类型
* OrderBy("id asc"):加载关系类时按照id升序(降序desc)
* mappedBy="classes"
*/
@OneToMany(
cascade=CascadeType.ALL,
fetch=FetchType.LAZY,
targetEntity=Student.class
)
@JoinColumn(name="classes_id",referencedColumnName="id")
private Set<Student> students = new HashSet<Student>(0);
多对一:
/**
* @ManyToOne 学生--班级 多对一
* classes_id:关联字段
* cascade:设定级联操作
* cascade=CascadeType.ALL
* fetch:是否懒加载,不要设置此处为lazy,否则会报错illegally attempted to associate a proxy with two open Sessions
* fetch=FetchType.LAZY
* optional:关联字段是否允许为空
*/
@ManyToOne(optional=true)
@JoinColumn(name="classes_id")
private Classes classes;
多对多
/**
* 多对多:老师-学生
*/
@ManyToMany
@JoinTable(name="th_st",inverseJoinColumns={@JoinColumn(name="teacher_id")},joinColumns={@JoinColumn(name="student_id")})
//Fecth策略定义
@Fetch(FetchMode.SUBSELECT)
//集合按id排序.
@OrderBy("id")
private Set<Teacher> teacherList = new HashSet<Teacher>(0);
级联操作的使用场景:
@ManyToOne
@OneToMany
级联删除
级联增加
分享到:
相关推荐
- Hibernate:通过Hibernate的注解API,可以直接在JavaBean中定义数据库映射,简化ORM(对象关系映射)过程。 - MyBatis:MyBatis允许在Mapper接口和XML映射文件中使用注解,实现SQL语句的动态生成。 5. **工具...
- 使用Hibernate注解或XML映射文件(hbm.xml)将类与数据库表关联。例如,Event类可以映射到名为events的表,通过@Id注解指定id字段为主键,@Column注解定义其他字段的映射。 5. Session工厂和Session - ...
注解是使用Hibernate进行对象关系映射的一种方式,它可以减少配置文件的编写,直接在实体类上标注映射信息。 ###Hibernate查询深入 Hibernate提供了Criteria API,可以在代码中创建查询条件,进行复杂的查询操作,...
- `@OneToMany`、`@ManyToOne`、`@ManyToMany`:表示实体之间的关联关系。 - `@JoinColumn`、`@JoinTable`:指定外键或中间表。 - `@Column`:指定字段属性。 通过以上介绍可以看出,Hibernate不仅提供了丰富的...
例如,通过 `@ManyToOne`、`@OneToMany` 等注解或在 `.hbm.xml` 文件中定义关联关系,实现不同表之间的数据关联。 **4. HQL 语言** Hibernate Query Language(HQL)是 Hibernate 提供的一种面向对象的查询语言,...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本示例将深入讲解如何利用Hibernate进行数据库操作,尽管可能存在一些不足之处,但仍然能够帮助初学者理解...
- **映射文件或注解**:使用Hibernate的XML映射文件或注解,将JavaBean的属性与数据库表的字段关联起来。 - **生成DDL**:Hibernate可以通过反向工程(Reverse Engineering)自动生成数据库表的DDL(Data Definition...
4. 配置实体类:创建JavaBean表示数据库表,使用Hibernate的注解进行字段映射。 5. 编写DAO层:使用Hibernate的Session接口进行数据库操作,如保存、查询、更新和删除。 6. 测试:编写JUnit测试类,验证整合后的功能...
在IT行业中,尤其是在Java开发领域,使用ORM(对象关系映射)框架如Hibernate可以极大地提高开发效率。...在实际开发中,根据项目需求和团队规范,可能还需要进行额外的配置和优化,如添加懒加载、关联关系的处理等。
其次,描述中提到的"在JavaBean所在的包下映射的配置文件"通常指的是Hibernate的实体类映射文件,如`.hbm.xml`或采用注解方式的映射。这些文件描述了实体类与数据库表之间的关系,包括字段映射、主键策略、关联关系...
例如,可能会需要添加业务逻辑方法、修改数据类型的映射关系,或者调整关联关系等。 总结而言,MyEclipse 10.7提供了强大的工具支持,通过简单的配置和操作,可以大大提高开发者在数据库交互和ORM映射上的开发效率...
Hibernate通过Hibernate实体类(通常是JavaBean)和注解或XML配置文件定义这种映射关系。实体类中的属性对应数据库表的字段,而关系映射(如一对一、一对多、多对多)则通过关联字段实现。这大大降低了数据库操作的...
其核心组件包括:配置文件(hibernate.cfg.xml)、实体类(Entity)、映射文件(.hbm.xml或注解)以及Session工厂(SessionFactory)和Session。 ### 二、安装与配置 1. **环境准备**:确保JDK、Maven或Gradle等...
Hibernate支持一对一、一对多、多对一、多对多等多种关联映射,通过配置文件或注解定义关联规则,如外键约束、集合映射等。 6. **延迟加载与即时加载** 延迟加载(Lazy Loading)是Hibernate的一大特性,仅在真正...
- "JPA+-amp+Hibernate+注解+.doc"可能包含了关于使用注解配置JPA和Hibernate的详细示例。 - "JPA_由数据库生成JavaBean.docx"可能介绍了如何从数据库反向工程生成Java实体类。 - "JPA之OneToMany和ManyToOne处理...
- **映射文件(*.hbm.xml或注解)**:用于定义实体类和数据库表之间的映射关系,包括主键策略、字段映射、关联关系等。 #### 4. 数据库操作 - **基本CRUD操作**:通过Session接口提供的方法,可以轻松地完成创建、...
通过配置XML或注解,Hibernate可以透明地管理数据库的持久化。 **Struts** Struts是基于MVC(Model-View-Controller)设计模式的Java Web框架,它帮助开发者构建结构清晰、易于维护的Web应用。Struts通过Action和...
Hibernate是由 Gavin King 创建的,它基于 JavaBean 模型,实现了对象与数据库表之间的映射。通过XML或注解方式定义映射规则,使得Java对象可以直接操作数据库,降低了开发复杂性。Hibernate支持多种数据库,如MySQL...
- **hibernate.cfg.xml** 文件则用来配置实体类与数据库表的映射关系,通常会引用 `.hbm.xml` 文件或使用注解定义这些映射关系。 配置过程中,Hibernate会首先尝试读取 `hibernate.properties` 文件,然后可以通过 ...