Ankur jain
Ankur jain

Reputation: 993

EntityManager.createStoredProcedureQuery() is not resolved

I have Spring 4.1.0.Final, JPA hibernate-jpa-2.1-api and MySql. I am using this to develop REST APIs. Now I have a requirement to call a stored procedure. I got to make sure that EntityManager.createStoredProcedureQuery() is used to call a stored procedure. And this feature is available in JPA 2.1. I have already JPA 2.1 but still EntityManager.createStoredProcedureQuery() is not resolvable. Pasting the snapshot of maven configuration.

Can you please let me know what may be the issue:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.test</groupId>
   <artifactId>TESTAPI</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>war</packaging>
   <name>TESTAPI</name>
   <properties>
      <java-version>1.8</java-version>
      <org.springframework-version>4.2.5.RELEASE</org.springframework-version>
      <org.springframework-security-version>4.1.1.RELEASE</org.springframework-security-version>
      <org.springframework-security-oauth-version>2.0.10.RELEASE</org.springframework-security-oauth-version>
      <org.aspectj-version>1.6.10</org.aspectj-version>
      <org.slf4j-version>1.6.6</org.slf4j-version>
      <failOnMissingWebXml>false</failOnMissingWebXml>
   </properties>
   <dependencies>
      <!-- Spring -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-tx</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.6</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
      <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-core</artifactId>
         <version>4.1.4.Final</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
      <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-validator</artifactId>
         <version>4.1.0.Final</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api -->
      <dependency>
         <groupId>org.hibernate.javax.persistence</groupId>
         <artifactId>hibernate-jpa-2.1-api</artifactId>
         <version>1.0.0.Final</version>
      </dependency>
      <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-entitymanager</artifactId>
         <version>4.1.0.Final</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
      <!-- >dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.1.0.Final</version>
        </dependency-->
      <!-- https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence -->
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-orm</artifactId>
         <version>${org.springframework-version}</version>
      </dependency>
      <dependency>
         <groupId>javax.transaction</groupId>
         <artifactId>jta</artifactId>
         <version>1.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-io</artifactId>
         <version>1.3.2</version>
      </dependency>
   </dependencies>
   <build>
      <finalName>TESTAPI</finalName>
   </build>
   <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk -->
</project>

Upvotes: 0

Views: 2228

Answers (2)

Abdul Wasey
Abdul Wasey

Reputation: 71

Sorry for the late reply. Hope so you clear your issue but its may help to the newcomer if you are using a JPA upgrade the hibernate-entitymanager and hibernate-jpa version used this one:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.10.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <version>1.0.2.Final</version>
        <scope>provided</scope>
    </dependency>

By default, if we create a maven project from this command we face that issue...

mvn archetype:generate -DarchetypeArtifactId=jboss-javaee6-webapp -DarchetypeGroupId=org.jboss.spec.archetypes -DgroupId=com.example.helloworld -DartifactId=projectpath -DinteractiveMode=false

Thanks

Upvotes: 0

Maciej Kowalski
Maciej Kowalski

Reputation: 26552

You have two options.

1) Either exclude the hibernate-jpa-2.0-api from the hibernate-entitymanager:

  <dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-entitymanager</artifactId>
     <version>4.1.0.Final</version>
     <exclusions>
       <exclusion>  
         <groupId>org.hibernate.javax.persistence</groupId>
         <artifactId>hibernate-jpa-2.0-api</artifactId>
       </exclusion>
     </exclusions> 
  </dependency>

or

2) Upgrade the version of the hibernate-entitymanager to the first version containing the 2.1 JPA api as its dependency:

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

Upvotes: 1

Related Questions