Hibernate 持久层调优指南
1. 批量获取数据
可以通过类的 XML 配置文件设置批量获取大小,示例如下:
<class name="Item" batch-size="50">...</class>
当遍历 5000 个客户时,Hibernate 会先加载前 50 个客户的相关项,然后是接下来的 50 个,依此类推。使用批量大小为 50 的基准测试显示,虽然吞吐量比连接抓取策略小,但批量获取的优势在于数据可以懒加载。当引用的集合很少被加载时,批量获取可能是最佳的数据检索选项。
此外,还可以为会话工厂定义默认的批量大小,示例如下:
<property name="default_batch_fetch_size">5</property>
2. 使用命名查询加速查询
以往我们在单个 EJB 方法中定义查询来请求数据。若不想在多个方法中分散查询,可以使用命名查询在类级别声明查询,并在需要的地方调用。示例如下:
@NamedQueries(
{
@NamedQuery(
name = "listCustomers",
query = "FROM Customer c WHERE c.name = :name"
)
})
public class Customer implements Serializ
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



