我有一个使用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。感谢所有帮助过的人!