JPA与JDBC,存储过程和公司或如何说服老派程序员尝试ORM?

top*_*hef 9 java database orm jpa jdbc

这是我定期处理的事情,第一次是我需要信念.幸运的是,我只是尝试过,做了额外的努力来学习并感谢本书,Spring支持和Hibernate我不会在不考虑JPA的情况下启动项目.但并不是每个人都愿意经常加倍努力(就在我猜的任何事情中).那么如何以及如何说/提出/解释/论证至少改变他们对ORM的态度?

相关:说服顽固的DBA使用ORM来处理大多数CRUD与存储过程,视图和函数

duf*_*ymo 5

我假设您实际上拥有一个比 DTO 更丰富的对象模型,而不仅仅是与您的关系模式 1:1 的对应关系。如果没有,你就不会赢得争论。

如果 Hibernate 生成的 SQL 至少与存储过程中的手工编码内容一样有效,那么您就赢了。

如果可以优化存储的 proc 以比 Hiberate 生成的 SQL 执行得更好,那么您就输了。

如果数据库由依赖存储过程的其他应用程序共享,则您会失败。您无法轻松地将逻辑移至 Spring 和中间层。

如果您的应用拥有数据库,则情况会更好。

由于您已经在使用 Spring,这表明您有一个利用 Spring Validation 的 DAO 层。PreparedStatements 已经在下面使用了,所以 SQL 注入对于 Spring 和存储过程来说都是不可能的。


mat*_*t b 2

那么如何以及说什么/呈现/解释/争论来至少改变他们对 ORM 的态度呢?

询问他们是否想要继续为您添加到应用程序中的每个新实体类型编写相同的样板 SQL JDBC CRUD 代码。

如果数据层中没有 ORM 解决方案,每个新实体类都需要 N 个工作单元才能使该实体通过数据层可用(DAO、CRUD 代码、存储过程、编写查询等)。

ORM 将该 N 转换为其自身的一部分,假设添加新实体只需要您在元数据中为该实体添加另一个映射。