对于大型应用程序,您推荐 JDBC 还是 JPA?

Bin*_*ril 1 orm hibernate jpa jdbc

给一些背景,

  1. 我们有相当大的模式,由数百个具有复杂关系的表组成。
  2. 数据量也很大,数据的性质相对敏感(财务)
  3. 当前的体系结构是 - Java EE:会话 Bean,调用存储过程的 DAO (JDBC)。
  4. 在数据库级别,我们有一些复制机制来使数据与前端和后端数据库(托管在不同的机器上)保持同步。因此,应用程序将需要从前端数据库中查找(读取)数据,如果不可用,则在后端数据库中查找。因此,在 JPA 术语中,我们可能需要两个不同的 EntityManager 实例。

由于系统仍在增长,可扩展性和性能是最大的问题。

有了以上信息,是否有人对迁移应用程序以使用持久性框架(如 JPA)的可行性有任何意见?在上述情况下,持久性框架面临哪些挑战?

jpk*_*ing 5

我同意@SJuan76 的观点,即您应该让某人深入研究您的架构以提供更好的建议。但无论如何,这里有一些提示:

1) 从映射开始。以“正确的 OOP 方式”映射您的实体,并尝试通过调整映射来达到您拥有的相同模式。如果关系那么复杂,你可能会遇到一些障碍,最好在映射阶段处理它(而不是只映射一小部分,对于 PoC)。

2) 不要担心 Hibernate 的性能。Hibernate 可能比任何内部 JDBC 框架都快。但是,如果您决定将业务逻辑从存储过程转移到您的 Java 代码,请务必查看性能变化。在转换它们时,您可能必须改变思维方式,因为在 SP 内处理大量数据通常比将大量数据传输到应用程序层并在那里进行处理要快。

3) 花一些时间阅读 Hibernate 书籍和文档。真的。大多数时候,人们抱怨 Hibernate 是因为他们并不真正了解幕后发生的事情。

祝你好运 :-)