在Hibernate文档提供了在@BatchSize一些信息:
@BatchSize指定"批量大小",用于通过标识符获取此类的实例.尚未加载的实例一次加载批量大小(默认值为1).
当我们需要使用它时,我不清楚这个注释的目的是什么.有些人可以帮助我了解何时使用此注释.
Aun*_*Aun 12
使用批量提取,如果访问一个代理,Hibernate可以加载几个未初始化的代理.批量提取是延迟选择提取策略的优化.有两种方法可以配置批量提取:在类级别和集合级别.
批量获取类/实体更容易理解.请考虑以下示例:在运行时,您在会话中加载了25个Cat实例,并且每个Cat都有一个对其所有者的引用,即Person.Person类使用代理映射,lazy ="true".如果您现在遍历所有猫并在每个猫上调用getOwner(),默认情况下,Hibernate将执行25个SELECT语句来检索代理所有者.您可以通过在Person的映射中指定批量大小来调整此行为:
<class name="Person" batch-size="10">...</class>
Run Code Online (Sandbox Code Playgroud)
Hibernate现在只执行三个查询:模式为10,10,5.
| 归档时间: |
|
| 查看次数: |
8052 次 |
| 最近记录: |