我假设这个问题与使用开发工作室和为 MySQL 设置一样多。
这就是我们所做的。原谅任何不正确的术语。我已经完成了这项工作,但并不完全理解所有部分。
确保在您的 buildpatch 中安装 JBDC 驱动程序。我们将我们的安装在默认的服务器 lib 目录中。
您还需要部署目录中的数据源文件。接缝生成器将创建一个,它看起来像 project-ds.xml。默认情况下,它会显示在资源文件夹中的 ear 项目中。
默认情况下并不总是部署它。确保它位于服务器的部署文件夹中。如果您不知道如何在 JBDS 中部署它,只需手动将其复制到那里即可。
您可能会发现在安装该文件夹时跟踪 server.log 文件很有用。您将看到数据源绑定到一个 jndi 名称。
这是一个示例数据源(在 ds.xml 中)
<datasources>
<local-tx-datasource>
<jndi-name>contactsDatasource</jndi-name>
<use-java-context>true</use-java-context>
<connection-url>jdbc:mysql://nmstdb-test.ba.ssa.gov:3306/contacts</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>xxxxxx</user-name>
<password>xxxxxxx</password>
</local-tx-datasource>
ejb 项目将有一个 ejbModule/META-INF 文件夹,其中包含一个 persistence.xml 文件。确保 project-ds.xml 中定义的 jndi-name 与 persistence.xml 中定义的 jta-data-source 匹配。
确保 hibernate.show_sql(在 persistence.xml 中)设置为 true,以便您可以在日志中看到查询输出。
这是一个示例 persistence.xml 文件
<persistence-unit name="contacts">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/contactsDatasource</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.default_catalog" value="contacts"/>
<property name="hibernate.default_schema" value="contacts"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/contactsEntityManagerFactory"/>
</properties>
</persistence-unit>
确保您使用的是正确的方言。如果您没有使用 InnoDB 引擎,请在 Google 上搜索正确的方言。
确保在 persistence.xml 中定义的 jboss.entity.manager.factory.jndi.name 的值与在 WebContent/WEB-INF/components.xml 中定义的 persistence-unit-jndi-name 匹配。
<persistence:managed-persistence-context name="entityManager" auto-create="true"
persistence-unit-jndi-name="java:/contactsEntityManagerFactory"/>
不要忘记检查问题视图以帮助您发现/修复任何编译/语法类型问题。
这些或多或少是你需要考虑的事情。