2012-08-27 59 views
0

我有以下休眠查詢org.hibernate.criterion.CriteriaQuery.getFactory()求解java.lang.NoSuchMethodError:

java.lang.NoSuchMethodError: org.hibernate.criterion.CriteriaQuery.getFactory()Lorg/hibernate/engine/spi/SessionFactoryImplementor;

在我的彈簧配置文件中的相關部分如下所示:

<bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="/WEB-INF/jdbc.properties" /> 

    <bean id="dataSource" 
     class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" 
     p:driverClassName="${jdbc.driverClassName}" 
     p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" 
     p:password="${jdbc.password}" /> 


    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation"> 
      <value>classpath:hibernate.cfg.xml</value> 
     </property> 
     <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

我的環境:Hibernate-3.6.10.FINAL,Spring 3.1.2.RELEASE,Hibernate Spatial 4.x,PostGIS JDBC 1.5.2和PostgreSQL 8.4-702.jdbc3。

任何想法,我可能做錯了將高度讚賞。

UPDATE:這適用於簡單查詢;不涉及空間數據的查詢。所以,我猜想它的空間組件有問題。

更新:pom.xml,我已經在我的POM文件中包含了相關的部分。

<properties> 
     <spring.version>3.1.2.RELEASE</spring.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.10.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-spatial</artifactId> 
      <version>4.0-M1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.postgis</groupId> 
      <artifactId>postgis-jdbc</artifactId> 
      <version>${hibernate-spatial.version}</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>postgis-jdbc</artifactId> 
        <groupId>org.postgis</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.postgis</groupId> 
      <artifactId>postgis-jdbc</artifactId> 
      <version>1.5.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.10.Final</version> 
     </dependency> 


     <dependency> 
      <groupId>postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>8.4-702.jdbc3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.6</version> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
+0

嘗試執行簡單的查詢,看看是否錯誤依然存在。 – JMelnik

+0

對我來說,它看起來像jar衝突。它失敗的地方 - 服務器還是junit?以及部署哪個服務器,如果?更多信息.. – JIV

+0

@JMelnik,這工作正常與簡單的查詢;沒有空間組件的那些。這導致了我的結論,那就是存在問題的空間組件。 – okello

回答

0

My environment: Hibernate-3.6.10.FINAL, Hibernate Spatial 4.x

http://www.hibernatespatial.org/

Compatibility with Hibernate ORM

Hibernate Spatial version 1.0 is compatible with Hibernate 3.2.x - 3.5.x 
Hibernate Spatial version 1.1.x is compatible with Hibernate 3.6.x 
Hibernate Spatial version 4.0 is compatible with Hibernate 4.x 
+0

謝謝,@Vadzim,這個指針。我將在幾分鐘內完成變更並進行試用。 – okello

+0

我已經更新了pom.xml中的版本。現在無法創建sessionFactory,因此應用程序無法部署。我必須在當天晚些時候再看一遍。然後我會發布我的發現。 – okello

+0

謝謝。在此之後,它終於有了一系列其他變化。讓Hibernate Spatial 4.x與其他平臺一起工作是一個相當大的挑戰。我會準備一個這個帖子。 – okello

相關問題