根据JPA规范,要求persistence.xml具有持久性单元名称,事务类型JTA(因为我将在Java EE容器中使用它)数据源名称,用户ID和密码。
以上内容适用于使用@PersistenceContext注入的容器管理的实体管理器或使用@PersistenceUnit注入的应用程序管理的实体管理器工厂。
我的查询是在服务器为多个数据库提供服务的单个实例的情况下,根据应用程序要服务的区域,我具有不同的数据源,因此我希望能够在运行时而不是在编译期间使用persistence.xml定义数据源。
我尝试使用Persistence API创建实体管理器工厂,但是似乎任何容器都不需要此方法即可提供支持。
尽管在定义持久层时我想遵循jee规范,但是能够在运行时处理多个数据源的这一特殊项看起来并不像JPA提供的即用型功能。
在直接实现Hibernate的情况下,我可以以编程方式设置所需的数据源。有没有人遇到过类似的情况,选择使用Hibernate或任何持久性提供程序实现,而不是将细节硬编码为构建特定的persistence.xml?