我有实体模型:
@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(尽管这种关系是懒惰的)。
你有什么想法吗?