createStoredProcedureQuery is not resolved

て烟熏妆下的殇ゞ 提交于 2019-12-11 10:24:07

问题


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();
}

回答1:


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




回答2:


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)



来源:https://stackoverflow.com/questions/34170256/createstoredprocedurequery-is-not-resolved

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!