添加" packagesToScan" sessionFactory属性在Spring中导致noSuchMethodError

时间:2014-11-22 00:43:12

标签: java spring hibernate jboss spring-security

我有一个使用Hibernate4的Spring(4.1.0.RELEASE)项目。一切正常,但当我尝试添加这一行时:

<property name="packagesToScan" value="com.package.model" />

到我的sessionFactory bean,它看起来像这样:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.wolf.theivy.auth.model" />       
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

然而,当我运行我的webapp时,我收到以下错误:

Error creating bean with name 'sessionFactory' defined in ServletContext 
resource [/WEB-INF/spring-database.xml]: Invocation of init method failed; 
nested exception is java.lang.NoSuchMethodError: 
javax.persistence.Table.indexes()[Ljavax/persistence/Index;

这让我相信问题在于添加了“packagesToScan”属性。包是正确的包,所以我知道这不是问题。另外需要注意的是,我在JBoss EAP 6.1+服务器上运行应用程序,所以我不确定这是否与错误有关。

编辑:

我认为这与JBoss运行JPA 2.0而不是JPA 2.1有关,所以我转而使用Wildfly 8.1来看看这是否能解决这个问题。

编辑2:

问题在于JBOSS运行JPA2.0,所以我切换到Wildfly,这完全解决了问题,因为Hibernate 4.3需要JPA 2.1。感谢所有帮助过的人!

0 个答案:

没有答案