小编hun*_*ter的帖子

在session.flush之后,Hibernate @BatchSize无法按预期工作

我正在使用Hibernate 4.2,并且我有一个包含子实体集合的父实体(一对多,获取类型为LAZY并带有注释@BatchSize(size=100)).

如果我查询并加载几个父实体并调用访问包含子对象的集合,则hibernate使用@BatchSize预期的.但是如果我调用session,flush然后执行相同的操作,它只为该特定父实体初始化集合.

这是Hibernate预期的行为吗?

编辑:样本

    List parents = criteria.list()
    parents.get(0).getXs().get(0) // triggers loading Xs of all parents 
    

VS

    List parents = criteria.list()
    session.flush()
    parents.get(0).getXs().get(0) // triggers loading Xs of only the first parent
    

java hibernate

7
推荐指数
1
解决办法
551
查看次数

标签 统计

hibernate ×1

java ×1