java - 现实世界中的 ORM

标签 java hibernate orm jpa ibatis

我正在开始一个我认为会持续数年的新项目。我正在决定要使用的 ORM 框架(或是否使用一个)。任何有经验的人都可以告诉我在现实世界的应用程序中是否使用了 orm 框架。我想到的问题是:当我创建和修改我的实体时,orm 工具将为我生成表和列等。但是,在项目上线并投入生产后,将无法进行某些数据库更改。这会不会阻碍项目的推进。例如,如果我使用像 ibatis 这样的框架,我知道我只需要根据数据库的变化调整 sql 语句。谁能告诉我 ORM 工具是否在现场环境中幸存下来。在我的办公室,我们使用很久以前完成的基于 Java 的 ERP,并且从未使用任何 ORM 框架完成。

问候。 乔希

最佳答案

仅将自动生成的架构用于早期开发和原型(prototype)制作。生成的 DDL 几乎永远无法满足任何有经验的 DBA。此外,数据库将比当前的应用程序代码生命周期更长,因此花时间设计它通常是值得的。

在选择映射器时,请选择灵活的映射器,并远离对象痴迷的映射器,因为它们通常只支持有限的数据库定制。想到 Hibernates 糟糕的存储过程集成,JPA 缺乏对自定义类型映射器的支持。

IBatisEclipseLink 这样的对象映射器是安全的选择,因为它们允许您映射几乎任何东西,确保您可以创建出色的领域模型和漂亮的模式设计.另请注意,Spring JDBC 已经取得了长足的进步(尤其是非常方便的 SimpleJDBCTemplate ),因此虽然从技术上讲它不是 ORM,但它确实允许您做任何您想做的事情而无需编写乏味的 JDBC 样板代码.

关于java - 现实世界中的 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673732/

相关文章:

java - AOSP 添加新的自定义系统服务

java - 简单的 Java 错误

java - 使用 ExoPlayer 缓冲音频直播

javascript - 是否有一个好的框架或方法来重构 JavaScript 对象?

Java VM是方法结束时操作数栈总是空的

hibernate - grails/GORM实例使用get vs read读取的域之间的差异

java - Kotlin 数据类 equals() 方法是否可以在不进一步修改的情况下与 JPA 一起使用?

java - 尽管数据在数据库中,查询未返回结果

Symfony2 Doctrine2 与可选的一对一关系存在问题

java - 符合给定标准的 Scala/Java ORM