我有一个包含客户数据的表,该表与订单表的外键相关联。显然,一个客户可以拥有多个订单,但每个订单只有一个客户。
当我检索客户数据时,Hibernate会自动获取客户端的连接订单。但在许多情况下,我只需要客户数据。出于性能原因,我想避免这种情况,只有在需要时才能获得订单。
有可能吗?这实际上会影响性能吗?
谢谢! 噪声
答案 0 :(得分:3)
如果您在加载客户时已将customer
和order
之间的关联映射到Fetchtype.LAZY
,则只有在您访问订单时才会加载订单。通过这种方式,加载速度会更快。
相反,FetchType.EAGER
会在您加载orders
对象时加载customer
的集合,从而影响效果。
您可以告诉Hibernate
您更喜欢哪种关联,使用注释的示例是:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)