CreateStoredProcedureQuery Is Not Resolved

here is my code and createStoredProcedureQuery has redline underneath in eclipse, and not resolved, I tried many ways still could not get what is wrong.

private static EntityManagerFactory factory;

public static void main(String[] args) {
    factory = Persistence.createEntityManagerFactory("mypersistenceUnit");
    EntityManager em = factory.createEntityManager();

    // Create call stored procedure
    em.getTransaction().begin();
    StoredProcedureQuery storedProcedure = em.**createStoredProcedureQuery**("getCode");
    // set parameters
    storedProcedure.registerStoredProcedureParameter("name", String.class, ParameterMode.IN);
    storedProcedure.registerStoredProcedureParameter("num", String.class, ParameterMode.IN);
    storedProcedure.registerStoredProcedureParameter("code", String.class, ParameterMode.OUT);

    // execute SP
    storedProcedure.execute();
    // get result
    String code= (String)storedProcedure.getOutputParameterValue("code");
    System.out.println("code is: " + code);
    em.getTransaction().commit();
    em.close();
}
6

2 Answers

you need declare and set parameter:

/*Declare parameters*/

storedProcedure.registerStoredProcedureParameter( "name",       String.class,ParameterMode.IN);
storedProcedure.registerStoredProcedureParameter( "num",        String.class,ParameterMode.IN);
storedProcedure.registerStoredProcedureParameter("code", String.class, ParameterMode.OUT);



/*set parameter value*/
 storedProcedure.setParameter("name", "value_name");
 storedProcedure.setParameter("num", "value_num");
 storedProcedure.execute();
 // get result
 String code= (String)storedProcedure.getOutputParameterValue("code");

--remember, the parameters name in the store procedure must be the same to declared

JPA 2.1 is what provides that method. If you don't include the JPA API 2.1 jar in your CLASSPATH (and instead use JPA API 2.0) then you will get that. Fix your JPA API jar version (remove JPA API 2.0 and include JPA API 2.1)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Elena Rostova

Elena Rostova

Lead Health, Wellness & Medical Journalist

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.

Share this article
Twitter Facebook Pinterest