我正在使用 JPA 项目做一些 EJB,该项目将一些实体映射/持久化到 mysql 数据库。我在 persistence.xml 中定义了持久性单元,如下所示:
<persistence-unit name="MyAppPU" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>MyAppDS</jta-data-source>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.jdbc.DBDictionary" value="mysql" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
</properties>
</persistence-unit>
然后,在 tomee/conf/tomee.xml 文件中,我定义了这样的数据源:
<Resource id="MyAppDS" type="DataSource">
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://127.0.0.1:3306/MyAppDB
UserName root
Password 123
JtaManaged true
DefaultAutoCommit false
</Resource>
所有这一切都很好,我创建了 MyApp.jar,将其部署到 TomEE 服务器,对其进行测试,然后我在数据库中获取了 mysql 表。我的问题是“还有其他地方可以定义数据源资源吗?” 还是必须在 tomee/conf/tomee.xml 文件中?它可以在应用程序结构中的某个位置、某个 xml 文件中定义,并在应用程序 jar 文件中部署到服务器吗?