我目前正在尝试与JPA合作.我情不自禁地觉得我错过了一些东西,或者做错了.到目前为止,这似乎是被迫的.
到目前为止,我认为我知道他们有几种方法可以使用JPA和工具来支持这一点.
这两者似乎都有缺点,并且两者都有好处(和所有事情一样).我的问题是在理想的情况下,JPA的标准工作流程是什么?大多数模式在维护阶段都需要更新,特别是在开发阶段,所以如何处理?
从带注释的实体生成数据库模式并不总是一个好方法。尽管理论上听起来不错,但实际上生成的模式通常不是最佳的,并且无法满足经验丰富的 DBA。
我在工作流程中遵循的方法是分别创建实体和数据库模式,同时仍然使用非常智能的工具来创建模式 - 要么像Liquibase那样,与数据库无关,支持修订、回滚等...要么一个自定义烘焙迁移工具,只需运行高度优化的数据库特定 SQL 脚本。
这对您来说可能听起来不太理想,但我可以保证它可以完成工作并保持与模式相关的代码一致,因为正如 grigory 指出的那样 - 无论如何,并不是与数据库相关的所有内容都可以从实体生成。
但是,我可以从正在运行单元和集成测试的测试数据库的实体生成模式。假设你使用的是 PostgreSQL 是生产环境,你可能会决定加快单元测试的速度,运行一些嵌入式内存数据库,比如 H2,它是在测试开始之前从实体创建的,并自动消失(因为它是在内存中的) )测试完成执行后。这是一种非常常见的做法。
| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |