Hibernate为惰性关系生成查询

时间:2017-04-19 13:23:35

标签: java hibernate jpa orm lazy-loading

我有实体模型:

@Entity
public class UserEntity {

  @Id
  @Column(name = "id")
  private String id;

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "restaurant_id", nullable = false)
  @LazyToOne(value = LazyToOneOption.NO_PROXY)
  private RestaurantEntity restaurant;

  // getters & setters

}

Hibernate为以下代码生成一个sql查询,这是预期的行为:

// this code gets user entry with specified user id
// as result you can see the single sql query in hibernate logs.
entityManager.find(UserEntity.class, userId);

但是如果实体代码被检测(通过hibernate-enhance-maven-plugin),hibernate将加载所有惰性关系,因此相同的代码会生成两个查询:一个用于获取具有id的用户,用于获取餐馆的secode(尽管这种关系是懒惰的)。

你有什么想法吗?

0 个答案:

没有答案