【问题标题】:Is Hibernate suitable for a small web application?Hibernate 适合小型 Web 应用程序吗?
【发布时间】:2013-01-19 00:47:19
【问题描述】:

我正在设计一个小型 JavaEE Web 应用程序...我有一个 PostgreSQL 数据库,其中包含近 10 个表......我有 Activiti 处理工作流......

我认为 Spring MVC 和 hibernate 非常适合我的要求。

但是有人问,Hibernate 适合我的用例吗?是不是太重了?如何选择对 Web 应用程序可行的 ORM?

也欢迎提出更好的解决方案 :) 谢谢

----更新---------

  1. 当然应用程序会增长,未来会添加更多表格。
  2. 我不会使用 DDD。

【问题讨论】:

  • 为什么它会太重 - 他们提出了原因吗?
  • 很难说。您的服务器能否处理 Hibernate 可能产生的额外负载?该应用程序是否有望在未来增长?您的开发人员是否更习惯于 Hibernate 而不是普通的 JDBC?
  • 他们说 Hibernate 是重量级的 ORMapping 并且很难维护 - 对于只有 10 个表的小型 Web 应用程序。
  • 有什么轻量级的 ORM 建议可以与 Sping MVC 协调工作吗?
  • Hibernate 会占用一些 PERMGEN 空间用于反射,当然会影响您的记忆。但随着时间的推移,hibernate 已经成熟为一个非常健壮的框架。在我看来,与具有 SQL 知识的普通人能够编写的任何 SQL 相比,它会生成更清晰的 SQL。话虽如此,如果您仍然想轻量级,我建议使用 Spring 的 JDBCTemplate 并使用 DTO 映射器映射您的数据。

标签: hibernate jakarta-ee orm


【解决方案1】:

简而言之: 没有

但也许……

如果它是一个没有数据库模式的新项目,Hibernate 很有用。它允许将数据库抽象出来并根据对象进行思考。让你快速上手。但是,您的项目似乎已经启动并运行,因此这些好处是无效的。

当项目增长时,尤其是模式增长时,Hibernate 主要是阻碍。 如果您打算使用 DDD 和繁重的域对象,Hibernate 没有帮助,因为 Hibernate 更喜欢愚蠢的 pojo 域模型。

如果您已经知道您将继续使用 PostgreSQL,那么 ORM 与数据库提供者无关的好处是毫无意义的。

【讨论】:

  • 感谢您的回答。如果 Hibernate 是一个新项目,您能否详细说明为什么 Hibernate 比从数据库表进行逆向工程更有用? (我也更新了问题。)
【解决方案2】:

它有助于减少代码行数,使系统更易于理解。您可以更专注于业务逻辑而不是持久性工作 (SQL)。更重要的是,代码更少的系统更容易重构。

Of course, the application will grow and add more tables in the future.

那它就不会变成小应用了。

Small scale application supporting framework

【讨论】:

  • 而且没有那么重
猜你喜欢
  • 1970-01-01
  • 2011-04-09
  • 2016-10-07
  • 2011-08-02
  • 2017-02-03
  • 2015-06-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
相关资源
最近更新 更多