hibernate使用摘要(many-to-many N+1问题)
2016-07-20 11:25
441 查看
1 hibernate的N+1问题
1.1 表1配置
1.2 表2配置
注意 Fetch需要使用subselect。 不能使用其它Join或者select。
subselect使用后,转换的类似语句为:
select
employees0_.departmentId as departme2_0_1_,
employees0_.employeeId as employee1_2_1_,
qyhemploye1_.id as id1_1_0_,
qyhemploye1_.account as account2_1_0_,
qyhemploye1_.gender as gender3_1_0_,
qyhemploye1_.mail as mail4_1_0_,
qyhemploye1_.name as name5_1_0_,
qyhemploye1_.position as position6_1_0_,
qyhemploye1_.telephone as telephon7_1_0_,
qyhemploye1_.wxHao as wxHao8_1_0_
from
qyh_employee_department employees0_
inner join
qyh_employee qyhemploye1_
on employees0_.employeeId=qyhemploye1_.id
where
employees0_.departmentId in (
select
qyhdepartm0_.id
from
qyh_department qyhdepartm0_
)
1.1 表1配置
@ManyToMany(mappedBy = "departments", fetch = FetchType.EAGER) @Fetch(FetchMode.SUBSELECT)
1.2 表2配置
@ManyToMany(fetch = FetchType.EAGER) @Fetch(FetchMode.SUBSELECT)
注意 Fetch需要使用subselect。 不能使用其它Join或者select。
subselect使用后,转换的类似语句为:
select
employees0_.departmentId as departme2_0_1_,
employees0_.employeeId as employee1_2_1_,
qyhemploye1_.id as id1_1_0_,
qyhemploye1_.account as account2_1_0_,
qyhemploye1_.gender as gender3_1_0_,
qyhemploye1_.mail as mail4_1_0_,
qyhemploye1_.name as name5_1_0_,
qyhemploye1_.position as position6_1_0_,
qyhemploye1_.telephone as telephon7_1_0_,
qyhemploye1_.wxHao as wxHao8_1_0_
from
qyh_employee_department employees0_
inner join
qyh_employee qyhemploye1_
on employees0_.employeeId=qyhemploye1_.id
where
employees0_.departmentId in (
select
qyhdepartm0_.id
from
qyh_department qyhdepartm0_
)
相关文章推荐
- Java 深拷贝与浅拷贝的分析
- 修改pip安装源加快python模块安装
- tomcat-connector的微调: 超时相关的参数
- 打印完整URL
- Android 完美退出 App (Exit)
- eclipse插件:打开选中文件所在的目录
- oracle中sequence浅析
- VC中comBox控件的详解(转)
- 观察者模式
- 单例模式
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 决策树与随机森林相关概念及其Python实现
- 笔记本自带键盘输入错乱
- 决策树与随机森林相关概念及其Python实现