2
假设一个EJB-JAR具有以下的persistence.xml配置:有没有一种方法来配置基于jta-data-source的Hibernate方言?
<?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>
我想定义基于JTA数据源上的休眠方言。如果是oracle,我使用下面指出的方言,如果postgres,我使用不同的方言。有谁知道如何做到这一点,或可以指向我如何做到这一点的文件? Google未能提供所需的信息。该应用将部署在JBoss应用服务器上,但我也想支持其他应用服务器。此外,我们有两个部署模型,一个使用postgres,另一个使用oracle和Id,而不必在配置文件中创建两个Ears来支持一行差异。
在此先感谢。
Hibernate现在能够正确自动检测Oracle 11g与Oracle 10g吗?我已经使用了一年多的Hibernate,但我记得至少在一年前这是一个问题。 – Olaf 2013-02-19 19:16:43
我没有亲自尝试过。通过将调试代码放入应用程序中,以便在应用程序加载后获取方言的类名,可以找到答案。 – 2013-03-04 14:58:41