1

使用 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 fetch 的情况下,Hibernate 会尝试预先为所有依赖类获取数据。

我将 FetchType 改回 LAZY,但性能仍然像以前一样糟糕。

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

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

4

0 回答 0