JPA QL查询优化与语法详解
1. Fetch Joins
在JPA查询中,我们经常会遇到需要加载实体关联关系的情况。 JOIN FETCH 语法允许我们预先加载返回实体的关联关系,即使关联属性的 FetchType 为 LAZY 。
1.1 示例问题
假设我们定义了员工与电话的一对多关系如下:
/**
* All {@link Phone}s for this {@link Employee}
*/
@OneToMany (fetch=FetchType.LAZY)
private Collection<Phone> phones;
如果我们想打印出所有员工信息,包括他们的电话号码,通常会先查询所有员工,然后在循环中遍历 getPhones() 方法:
Query query = manager.createQuery("SELECT e FROM Employee e");
List results = query.getResultList( );
Iterator it = results.iterator( );
while (it.hasNext( )) {
Employee e = (Employee)it.next( );
System.out.print(e.getName( ));
for (Phone
超级会员免费看
订阅专栏 解锁全文
86

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



