A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

16.5、批量抓取
    在查询多个对象的关联对象时,可以采用批量抓取方式来对程序进行优化.
要想实现批量抓取:
可以在配置文件中 batch-size属性来设置
可以使用注解 @BatchSize(size=4)
可以采用批量抓取来解决N+1问题.

注意:
无论是根据哪一方来查询别一方,在进行批量抓取时,都是在父方来设置 ,如果是要查询子信息,那么我们是在<set>上来设置batch-size,如果是从子方来查询父方,也是在父方设置在<class>设置batch-size.
               父与子区分:
                         有外键的表是子(从关联方就是父()
扩展:
QBC和HQL支持的运算
运算类型
HQL运算符
QBC运算符
含义








比较运算
=

Expression.eq()
等于
<>

Expression.not(Expression.eq())
不等于
>

Expression.gt()
大于

>=

Expression.ge()
大于等于
<

Expression.lt()
小于

<=

Expression.le()
小于等于

is null

Expression.isNull()
等于空值

is not null

Expression.isNotNull()
非空值

范围运算
in (列表)

Expression.in()
等于列表中的某一个值
not in (列表)

Expression.not(Expression.in())
不等于列表中的任意一个值
between 值1 and 值2

Expression.between()
大于等于值1并且小于等于值2

not between 值1 and 值2

Expression.not(Expression.between())
小于值1或者大于值2

字符串模式匹配

like
Expression.like()
字符串模式匹配

逻辑运算
and
Expression.add()或者Expression.conjunction()
逻辑与
or
Expression.or()或者Expression.disjunction()
逻辑或
not
Expression.not()
逻辑非



1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马