有办法在运行时更改 persistence.xml 中的 jta-data-source 并保持管理模式
@PersistenceContext(unitName="BookUnit")
private EntityManager em;
(我知道我可以使用EntityManagerFactory,但我想像我之前写的那样保持托管模式)
我有多个环境(本地、测试、产品)
对于每个环境都有不同的 jndi 数据源
我不想更改每个环境的 persistence.xml
文件
我想在代码中管理它
最佳答案
有多种方法可以实现这种功能 -
1) 在 persistence.xml 中使用环境变量,并根据您的环境适本地初始化它们,即在启动服务器时将此变量初始化为适当的值
2) 由于您的开发、测试和生产实例会有所不同,因此对于相同的 JNDI 名称,请适当配置您的数据源。
例如:在您的开发服务器上配置数据源以连接到开发数据库,类似地,测试环境连接到测试数据库,生产环境连接到生产数据库。
我总是选择选项 2,因为这是标准的做事方式。
关于java - 部署时 persistence.xml 中的 Manege jta-data-source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27648965/