是否有基于jta数据源配置Hibernate方言的方法?

是否有基于jta数据源配置Hibernate方言的方法?,hibernate,jakarta-ee,jpa,ejb,Hibernate,Jakarta Ee,Jpa,Ejb,假设ejb jar具有以下persistence.xml配置: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/

假设ejb jar具有以下persistence.xml配置:

    <?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
  <persistence-unit name="com.mystrotv.mdn.admanager.entity">
    <jta-data-source>/dataSource/MystroDS_Tx</jta-data-source>
    <properties>
      <property name="jboss.entity.manager.jndi.name" value="java:/EntityManagers/AdManagerPersistenceContext"/>
      <property name="jboss.entity.manager.factory.jndi.name" value="java:/EntityManagers/AdManagerPersistenceUnit"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
      <property name="hibernate.hbm2ddl.auto" value="validate"/>
      <property name="hibernate.max_fetch_depth" value="5"/>
      <property name="hibernate.validator.apply_to_ddl" value="false" />
      <property name="hibernate.validator.autoregister_listeners" value="false" />
    </properties>
  </persistence-unit>
</persistence>

/数据源/MystroDS\u Tx
我想基于JTA数据源定义hibernate方言。如果是甲骨文,我使用下面的方言,如果是postgres,我使用不同的方言。是否有人知道如何做到这一点,或者可以告诉我如何做到这一点的文档?谷歌未能提供所需的信息。该应用程序将部署在JBoss应用程序服务器中,但我也想支持其他应用程序服务器。此外,我们有两个部署模型,一个使用postgres,一个使用oracle和Id,而不必构建两个EAR来支持配置文件中的一行差异


提前谢谢

在我发布问题之后,我找到了答案


具体地说,如果没有指定方言,3.2版以后的hibernate版本应该会从JTA数据源自动检测到它,因此正确的过程是将方言规范完全从属性中删除。

在我发布问题之后,我找到了答案


特别是,如果未指定方言,则3.2版以后的hibernate版本应能从JTA数据源自动检测到该方言,因此正确的步骤是将方言规范完全从属性中删除。

现在hibernate是否正确地自动检测到Oracle 11g与Oracle 10g?我已经一年多没有使用Hibernate了,但我记得这是一个问题,至少在一年前。我个人还没有尝试过。你可以在应用程序加载后,将调试代码放入应用程序中,以获取方言的类名。现在Hibernate是否正确地自动检测Oracle 11g与Oracle 10g?我已经一年多没有使用Hibernate了,但我记得这是一个问题,至少在一年前。我个人还没有尝试过。您可以在应用程序加载后,将调试代码放入应用程序中,以获取方言的类名。