Hibernate:由于关系导致的性能问题

时间:2013-10-06 11:03:15

标签: java spring hibernate

使用Hibernate Tools 4.0.0,我使用Jackson lib为我的SpringMVC-Hibernate-Oracle Web应用程序生成实体类,用于JSON转换。我需要基于注释的类,因此我已相应地配置了该工具。

关系&约束在数据库中适当定义。结果,实体类在连接列上生成了两种类型的注释 -

@ManyToOne(fetch = FetchType.LAZY) 
// I modified to @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "CUST_CODE")

@OneToMany(fetch = FetchType.LAZY, mappedBy = "tempCustHeader")

我的表现非常糟糕,显然是因为在EAGER提取的情况下,Hibernate会尝试提前获取所有依赖类的数据。

我将FetchType更改回LAZY并且性能仍然像以前一样糟糕。

我注意到当Jackson lib尝试将数据转换为JSON时,在返回响应时,还会检索与FetchType.LAZY的ManyToOne关系中的所有数据。因此,无论是LAZY还是EAGER,它都需要几乎相同的时间和时间。响应时的数据大小。

我的问题 - 如何通过正确管理关系来提高绩效?如果我从DB或仅从实体类中删除关系,则意味着我没有利用Hibernate的功能。如何在其他项目中处理此类场景?

0 个答案:

没有答案