【发布时间】:2012-02-16 17:02:26
【问题描述】:
我正在编写一个 Java SE(桌面)应用程序,它必须访问不同的数据库,所有这些数据库都将具有相同的数据模型(相同的模式、表等)。我想重用已在每个数据库前面的 Java EE 应用程序中使用的 JPA 实体。
要重用现有的 entity.jar 文件,我必须使用具有 resource_local 数据源的不同 persistence.xml 重新打包它。这是构建时间上的不便,但不是大问题。
问题是我的桌面应用程序将被限制使用在 persistence.xml 文件中定义的数据源。我可以定义多个持久性单元并选择在运行时使用哪一个,但是当添加新数据库时,我必须更改 persistence.xml 并更新所有桌面二进制文件。
我希望能够在每个用户可以配置的 .properties 文件中定义新的数据源。有没有办法在运行时覆盖或添加到persistence.xml中声明的持久化单元?
我不想仅仅为了支持这个桌面应用程序而使用 Web 服务接口构建 Java EE 应用程序。 Java EE 应用程序有不同的用途,我想在桌面应用程序中保留桌面功能。
谢谢。
【问题讨论】: