首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JPA 2 CriteriaQuery中的FetchMode

是用于指定关联查询中的数据获取策略的枚举类型。FetchMode有两个常用的取值:LAZY和EAGER。

  1. LAZY(延迟加载):当使用LAZY模式时,关联对象的数据将在需要时才被加载。这意味着在查询主对象时,关联对象的数据不会被立即加载,而是在访问关联对象时才会触发加载。这种方式可以提高查询性能,避免不必要的数据加载。在JPA中,LAZY是默认的FetchMode。
  2. EAGER(立即加载):当使用EAGER模式时,关联对象的数据将在查询主对象时立即加载。这意味着无论是否需要使用关联对象的数据,它们都会被一起加载。这种方式可以确保在查询主对象时,关联对象的数据已经可用,但可能会导致性能问题,特别是当关联对象的数据量较大时。

FetchMode在CriteriaQuery中的使用示例:

代码语言:java
复制
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Order> query = cb.createQuery(Order.class);
Root<Order> orderRoot = query.from(Order.class);
orderRoot.fetch("customer", JoinType.INNER); // 使用EAGER模式加载关联对象
query.select(orderRoot);

List<Order> orders = entityManager.createQuery(query).getResultList();

在上述示例中,我们使用CriteriaQuery查询订单(Order)对象,并使用FetchMode指定了关联对象(customer)的加载策略。在这里,我们使用EAGER模式加载关联对象,确保在查询订单时,关联的顾客(customer)对象也会被立即加载。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券