hibernate 的 @BatchSize 注释允许批量获取延迟加载的实体。例如,如果我得到类似的东西:
public class Product {
@OneToMany(fetchType=LAZY)
@BatchSize(size=10)
private ProductCategory category;
}
现在,如果我得到一个产品的类别,Hibernate 将获取多达十个产品的类别,这些产品在当前会话中并且尚未初始化其类别字段。这节省了大量对数据库的 SQL 调用。到目前为止,一切都很好。现在我想知道为什么我不在每个延迟加载的关系上使用 @BatchSize 注释?毕竟我为什么要额外调用数据库?这显然是有原因的,否则 Hibernate 的人可能会将其设为默认值,但我目前看不到它。