2012-08-17 4 views
0

Je deviens étrange java.lang.NoSuchFieldError: Aucune erreur d'exécution qui essaie d'utiliser JPA avec Oracle DB. J'utilise Maven build. Voici les fichiers clés. Je suppose qu'il y a un problème avec certains JAR.JPA + Hibernate obtenant NoSuchFieldError

pox.xml

<dependency> 
       <groupId>javax.persistence</groupId> 
       <artifactId>persistence-api</artifactId> 
       <version>1.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>3.5.6-Final</version> 
    </dependency> 

persistence.xml

<persistence-unit name="ifp-test" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 
     <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> 
     <property name="javax.persistence.jdbc.user" value="something"/> 
     <property name="javax.persistence.jdbc.password" value="something"/> 
      <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin://@something_here"/> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> 
     <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

du code Java

List arr_cust = entityManagerFactory.createEntityManager().createNativeQuery(sql_query).getResultList(); 

Quelqu'un peut-il indiquer s'il vous plaît dans la bonne direction?

+3

Je ne vois pas vraiment comment ce XML est pertinent. Pourquoi ne pas nous montrer la requête SQL, l'entité (les entités) associée (s) et la trace de la pile? –

+0

En question il suffit d'ajouter la requête et la définition de l'entité à la fois XML ne sont pas pertinents ici. –

+0

Voici la requête: Chaîne sql_query = "select status_code FROM EXTERNAL_FILE_STAGING WHERE EXTERNAL_IDENTIFIER_VALUE = '5021111'"; Liste arr_cust = entityManagerFactory.createEntityManager(). CreateNativeQuery (sql_query) .getResultList(); c'est une requête native, aucune définition d'entité n'est requise, je suppose. – user655577

Répondre

1

J'ai trouvé une solution. Le problème était dans pom.xml. Voici le pom.xml correct.

<dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.5.6-Final</version> 
</dependency>