hibernate 多对多,多对多级联查询

数据库的多对多
1.1 数据库中不能直接映射多对多
处理:创建一个桥接表(中间表),将一个多对多关系转换成两个一对多
注1:数据库多表联接查询
永远就是两个表的联接查询
注2:交叉连接
注3:外连接:left(左)/right(右)/full(左右)
主从表:连接条件不成立时,主表记录永远保留,与null匹配

A B AB
select * from A,B,AB WHERE A.aID=AB.aID and b.bid = AB.bid
where
在hibernate中,你只管查询当前表对象即可,hibernate会自动关联桥接表(通过映射文件找到桥接表)以及关联表,查询出关联对象

2. hibernate的多对多
2.1 hibernate可以直接映射多对多关联关系(看作两个一对多)

案例:
多对多级联查询 书籍表、书籍类别表

实体类:
书 :book
类型:category
一本书对应多种类型 ,一种类型有多本书

Book

package com.zking.five.entity;

import java.util.HashSet;
import java.util.Set;

public class Book {
private Integer bookId;
private String bookName;
private float price;

private Set<Category> categroies=new HashSet<>();
private Integer initCategroies=0;

public Integer getInitCategroies() {
	return initCategroies;
}

public void setInitCategroies(Integer initCategroies) {
	this.initCategroies = initCategroies;
}

public Integer getBookId() {
	return bookId;
}

public void setBookId(Integer bookId) {
	this.bookId = bookId;
}

public String getBookName() {
	return bookName;
}

public void setBookName(String bookName) {
	this.bookName = bookName;
}

public float getPrice() {
	return price;
}

public void setPrice(float price) {
	this.price = price;
}

public Set<Category> getCategroies() {
	return categroies;
}

public void setCategroies(Set<Category> categroies) {
	this.categroies = categroies;
}


 }

Category

package com.zking.five.entity;

import java.util.HashSet;
import java.util.Set;

public c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值