Cri*_*ris 5 java optimization orm hibernate graph
对象结构是这样的
如果我需要使用Hibernate检索给定时间段内的发票列表很容易使用延迟加载而不编写任何代码只需调用get ...但是存在DB调用过多的缺点,因此在多用户环境中解决方案不行.
使用普通JDBC,我使用3个查询解决了这个问题:Invoice和ProductLines,Invoice和ServiceLines以及Invoice和Payment Options之间的3个连接.之后我在内存中构造了对象.
同样可以用Hibernate完成我知道但是我的问题是没有加载图这样的东西,所以我可以传递发票列表和最小数量的调用(最佳一个)来检索数据?
您可以使用带有连接获取的查询将整个对象图放入内存:
Query query = entityManager.createQuery("select distinct invoice from Invoice as invoice "
+ "left join fetch invoice.productLines "
+ "left join fetch invoice.serviceLines "
+ "left join fetch invoice.paymentOptions");
for (Object object : query.getResultList()) {
// Code here
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
828 次 |
最近记录: |