Hibernate多表关联及Hql查询
•ManyToOne 多对一关联(单向或双向)
•OneToOne 一对一关联(单向或双向)
•OneToMany 一对多关联(单向或双向)
•ManyToMany 多对多关联(单向或双向)
@ManyToOne(fetch=FetchType,cascade=CascadeType ) 可选
•@ManyToOne 表示一个多对一的映射 , 该注解标注的属性通常是数据库表的外键
•optional: 是否允许该字段为 null, 该属性应该根据数据库表的外键约束来确定 , 默认为 true
•fetch: 表示抓取策略 , 默认为 FetchType.EAGER
•FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载,即从数据库读到内存。
•FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。也可以说成表示关联关系的从类在主类加载时同时加载
实例
• // 订单 Order 和用户 User 是一个 ManyToOne 的关系
• // 在 Order 类中定义
• @ManyToOne()
• @JoinColumn(name="USER")
• public User getUser() {
• return user;
• }
@JoinColumn •和 @Column 类似 , 介量描述的不是一个简单字段 , 而一一个关联字段 , 例如 . 描述一个 @ManyToOne 的字段
@JoinColumn 描述的是一个关联字段 , 如 ManyToOne, 则默认的名称由其关联的实体决定
OneToMany 一对多关联(单向或双向)
主表中属性@OneToMany(mappedBy="多的哪一方的属性名")
@OneToMany(mappedBy="多的哪一方的属性名")
List <Object> list=new ArrayList();
从表中必须有ManyToOne 多对一关联(单向或双向)
OneToOne 一对一关联(单向或双向)
•@OneToOne(fetch=FetchType,cascade=CascadeType)
•可选
•@OneToOne 描述一个一对一的关联
•fetch: 表示抓取策略 , 默认为 FetchType.LAZY
•cascade: 表示级联操作策略
示例
• @OneToOne(fetch=FetchType.LAZY)
• public Blog getBlog() {
• return blog;
• }
ManyToMany 多对多关联(单向或双向)
•@ManyToMany
•可选
•@ManyToMany 描述一个多对多的关联 . 多对多关联上是两个一对多关联 , 但是在 ManyToMany 描述中 , 中间表是由 ORM 框架自动处理
•targetEntity: 表示多对多关联的另一个实体类的全名 , 例如 :package.Book.class
•mappedBy: 表示多对多关联的另一个实体类的对应集合属性名称
示例
• User 实体表示用户 ,Book 实体表示书籍 , 为了描述用户收藏的书籍 , 可以在 User 和 Book 之间建立 ManyToMany 关联
•@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
•@JoinTable(name = "Teacher_Student",
•joinColumns = {@JoinColumn(name = "Teacher_ID")},
•inverseJoinColumns = {@JoinColumn(name = "Student_ID")})
•public Set<Student> getStudents() {
•return students;
•}
Hql查询教程
createQuery("书写Hql语句")
占位符setParameter(0,"666666")
List<object>---多条查询list()
Object--单条返回uniqueResult()
int --删除和修改executeUpdate()
下一篇: IDEA 快捷键
推荐阅读
-
Spring Data JPA 实现多表关联查询的示例代码
-
浅谈mysql中多表不关联查询的实现方法
-
浅谈mysql中多表不关联查询的实现方法
-
MongoDB中多表关联查询($lookup)的深入讲解
-
mybatisplus代码生成器使用(mybatisplus多表关联查询)
-
Yii2.0框架模型多表关联查询示例
-
序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
-
mybatisplus代码生成器使用(mybatisplus多表关联查询)
-
Hibernate hql查询代码实例
-
oracle多表关联查询和子查询