相关疑难解决方法(0)

如何以编程方式将持久化上下文注入到不同的数据源中

在标准EJB 3中,当注入实体管理器时,持久性单元(指数据源)被硬编码到注释中:(或者xml文件)

@PersistenceContext(unitName = "myunit")
private EntityManager entityManager;
Run Code Online (Sandbox Code Playgroud)

有没有办法使用实体管理器,但在运行时按名称选择数据源?

persistence jpa entitymanager ejb-3.0

6
推荐指数
2
解决办法
2万
查看次数

如何让JPA应用程序访问不同的数据库?

我正在编写一个Java SE(桌面)应用程序,它必须访问不同的数据库,所有这些数据库都具有相同的数据模型(相同的模式,表格等).我想重用已经在每个数据库前面的Java EE应用程序中使用的JPA实体.

要重用现有的entity.jar文件,我必须使用具有resource_local数据源的不同persistence.xml重新打包它.这是构建时间的不便,但不是一个大问题.

问题是我的桌面应用程序将仅限于使用persistence.xml文件中定义的数据源.我可以定义多个持久性单元并选择在运行时使用哪个,但是当添加新数据库时,我将不得不更改persistence.xml并更新所有桌面二进制文件.

我希望能够在.properties文件中定义每个用户可以配置的新数据源.有没有办法在运行时覆盖或添加到persistence.xml中声明的持久性单元?

我不想用Web服务接口构建Java EE应用程序,只是为了支持这个桌面应用程序.Java EE应用程序有不同的用途,我希望将桌面功能保留在桌面应用程序中.

谢谢.

persistence.xml jpa-2.0

1
推荐指数
1
解决办法
3386
查看次数