java - 将自定义持久层迁移到 hibernate3

标签 java hibernate orm migration methodology

所以,很快,我将成为迁移的一部分,将一个家庭滚动的持久层(大约任何好的、流行的 ORM)移动到 hibernate3。但是,在进行此迁移的同时,开发人员将致力于在当前 持久层之上实现新的业务逻辑,因此反对迁移!关于如何最好地管理大约 1MLOC 的迁移,有人有建议吗?

我有一些初步的想法,但我想听听意见。

  1. 最初,hibernate 迁移可能需要成为主要开发线的一个分支,专门致力于将当前系统转换为使用 hibernate。
  2. 在某个时候,开发应该切换到 hibernate 分支,或者应该将 hibernate 分支合并回主开发线。
  3. 一些开发人员可能需要完全专注于迁移任务,尽管每个开发人员可能都具备完成新逻辑所需的特殊业务特定知识。

还有其他人执行过如此规模的任务吗?我在想,也许可以为每个开发人员提供某种配给量,例如新逻辑与迁移工作的 80/20、60/40 时间。通过这种方式,每个开发人员都可以拥有自己的代码域,并且所有人都将接触到新的范例,以防止被排除在所有迁移工作之外的开发人员的生产力突然停止,突然进入 hibernate 状态。

那么,哪个可能更好?

专门负责迁移的核心开发人员单位

为迁移而在所有开发人员之间合理分配开发

哪个更好,为什么?

最佳答案

我以前做过这样的迁移,情况非常相似:这是一个巨大的关键项目(迁移时有 120 多个开发人员),该项目使用自己的持久性框架(不是ORM,更像是一个非常接近 JDBC 的数据映射器),我们在开始 1 年后,在构建阶段的中期引入了 Hibernate,没有停止开发。

这是我们的做法:

  • 我们专门成立了一个特警团队(10 人,历时 3 个紧张的星期)来启动迁移
  • 我们是在一个单独的分支做的,不能打扰到施工队
  • 从逻辑上讲,我们从对象图的最深部分开始:(所有“引用数据”,如客户、银行账户、金融工具等,即大部分在各处使用的读取数据)。
    • 我们为所有未经过充分测试的现有 DAO 编写了测试
    • 我们映射了业务对象,我们使用 Hibernate API 和 HQL 重写了 DAO 方法
  • 并在一些极其关键的部分上更进一步
  • 我们在周末合并了代码,进行了所有可能的回归测试(0 回归 :)
  • 我们培训了施工团队并制定了一些新的开发规则
    • Hibernate 成为新开发的规则(如果可能的话)
    • 现有持久代码的迁移是在适当的时候完成的

它奏效了。

关于java - 将自定义持久层迁移到 hibernate3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614804/

相关文章:

java - 从 JPA 2.0 中的实体对象中提取主键?

java - 未找到 hibernate 搜索类异常 Lucene Field$TermVector

java - 使用 Ivy 指定传递依赖关系

Java PrintWriter 写入将数据设置为.txt

java - 多个数据库并行查询,用于单个客户端请求

java - "TransactionRequiredException: no transaction is in progress"即使应用事务拦截器 - hibernate-5 和 spring-4.3

java - C3P0 设置不明确

python - 为 MySQL View 创建模型并加入它

database - ORM 还是 "Vietnam of Computer Science"吗?

java - 是否有任何 Java 库可以对 http.conf 等 unix 配置文件进行操作