1+N问题

来源:互联网 发布:js连接mysql 编辑:程序博客网 时间:2024/06/03 20:17


1 1+N问题 (典型的试题

a) @ManyToOne(fetch=FetchType.LAZY) 

//fetch=FetchType.LAZY 解决N+1问题 说明如下:

//当多对一(@ManyToOne)已经设定属性" fetch=FetchType.LAZY "时 

//只有当需要时(:t.getCategory().getName())才会去获取关联表中数据 可以解决N+1问题

b) @BatchSize

//@BatchSize 解决N+1问题 说明如下:

//在与查询表(此例中为Topic)关联的表类(此例中为Category)头处加@BatchSize(size=5)

//表示每次可查出5条记录 从而减少了select语句的个数

c) join fetch

//join fetch 解决N+1问题 说明如下:

//修改hql语句为--"  from Topic t left join fetch t.category c  "

d) QBC

//QBC(Query By Criteria) 解决N+1问题 说明如下:

//使用QBC createCriteria(*.class)执行查询 也可避免N+1问题

0 0
原创粉丝点击