2

我在使用 hibernate 4.1.3 的新多租户功能时遇到了问题 我正在使用带有 JPA2 和 Hibernate 4.1.3 作为提供程序的 Glassfish 3.1。

这是我的persistence.xml

<persistence version="2.0" 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">
    <persistence-unit name="AuroraServicePU" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/sqlserver/Aurora</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.default_batch_fetch_size" value="100"/>
            <property name="hibernate.cache.use_second_level_cache" value="false"/>
            <property name="hibernate.cache.use_query_cache" value="false"/>
            <property name="hibernate.tenant_identifier_resolver" value="org.dna.aurora.web.TenantResolver" />
            <property name="hibernate.multiTenancy" value="DISCRIMINATOR" />
        </properties>
    </persistence-unit>
</persistence>

这是我尝试部署应用程序时遇到的异常。

INFO:HCANN000001:Hibernate Commons Annotations {4.0.1.Final} INFO:HHH000412:Hibernate Core {4.1.3.Final} INFO:HHH000206:找不到hibernate.properties INFO:HHH000021:字节码提供程序名称:javassist INFO:HHH000204:处理PersistenceUnitInfo [名称:AuroraServicePU ...] 严重:调用类 org.glassfish.persistence.jpa.JPADeployer 准备方法时出现异常严重:准备应用程序时出现异常严重:日志消息为空。java.lang.NullPointerException at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$MultiTenantConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:260) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117) at org.hibernate.service.internal.StandardServiceRegistryImpl。

严重:准备应用程序时出现异常

更新:我再次阅读了文档并注意到这个重要的信息和平:

鉴别器与分区(鉴别器)方法相关。尝试使用此策略打开没有租户标识符的会话是错误的。这个策略在 Hibernate 4.0 和 4.1 中还没有实现。计划对 5.0 提供支持。

这真的意味着鉴别器策略现在不可用吗?也许这就是整个问题?

任何帮助都会很棒。谢谢你,伊多。

4

1 回答 1

0

您尚未指定 Hibernate 应如何获取连接。您是否阅读过与此相关的文档?http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e4583

And specifically: http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e4658 http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e4702

于 2012-05-24T01:03:38.787 回答