spring-orm 3.2 需要不同的 JtaPlatform 包,而不是 hibernate-core 4.3

mis*_*hka 2 java orm spring hibernate

我依赖 spring-orm 3.2 和 hibernate-core 4.3。

我的春季休眠配置:

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="packagesToScan" value="my.domain.package"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>                
            </props>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

在运行时我有异常

引起:java.lang.ClassNotFoundException:org.hibernate.service.jta.platform.spi.JtaPlatform

在 SpringSessionContext 类中。在我的库中,我在另一个休眠包中看到了 JtaPlatform:

org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform
Run Code Online (Sandbox Code Playgroud)

(engine.transaction 而不是包中的服务)

我究竟做错了什么?

不要在 4.2.8(JPA 2.0 而不是 JPA 2.1)中复制,但我不明白,为什么它们在次要版本中破坏了可比性

Dmi*_*kov 5

尝试更改hibernate-core您正在使用的工件版本。JtaPlatform4.3.0.Beta1以来已移至另一个软件包。尝试使用4.2.8.Final,它包含JtaPlatform在适当的包中。