【发布时间】:2016-04-12 20:00:18
【问题描述】:
我看过一些关于通过 JPA 连接到多个数据库/数据源的文档,但这并不是我想要做的。我想使用一个数据库提供程序进行开发,并使用一个完全不同的数据库提供程序进行生产(可能还有 QA)。这个问题也适用于支持具有不同数据库提供程序的不同生产环境(即,客户端 1 的 DB2、客户端 2 的 Oracle、客户端 3 的 MySQL 等)。
就我而言,我想做以下事情:
- 将 JPA 与 Apache Derby 一起用于开发目的
- 将 JPA 与 IBM DB2 一起用于生产目的
我们不使用 Spring :(
使用 MyBatis,我可以简单地为我想要支持的每个数据库提供 XML 映射。并将所有结果映射回相同的实体/POJO。
到目前为止,在我看来,JPA 可能需要自定义所有内容,甚至可能是服务层(实体、DAO、sql 都是每个数据库自定义的)。
我想知道您将如何设置应用程序以使用 Derby 进行开发并使用 DB2 进行生产。我可以为两者使用相同的实体,我应该将 DAO 层分成单独的项目,我可以使用一个 persistence.xml 等吗?
请告知您建议采用何种方法来解决此问题。
【问题讨论】:
-
你也可以在 JPA 中为每个数据库提供 XML 映射;如果您需要在不同的数据存储上使用不同的架构,则不要使用注释
标签: jpa db2 derby development-environment production-environment