java - 部署时 persistence.xml 中的 Manege jta-data-source

标签 java jpa ejb-3.0

有办法在运行时更改 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/

相关文章:

java - 使用嵌套接口(interface)中的值作为参数进行查询

java - 使用注入(inject)的 EJB 对 Spring POJO 进行单元测试

java - EJB3实例化

java - 如果在 Java 中输入无效则异常。例如年龄

java - 为什么 InputStream obj 不能直接嵌套到 BufferedReader obj 中?

java - jdbc4connection + boneCP + MAT的内存泄漏

java - Spring中entityManager上的NullPointerException

java - 您是否应该将实体 Bean 用于域模型

java - Scala 中的密封特征类转换

java - spring bean id 值可以有 $ 吗?