createStoredProcedureQuery未解析

时间:2015-12-09 03:27:44

标签: java hibernate jpa stored-procedures dns

这里是我的代码,createStoredProcedureQuery在eclipse下面有红线,并没有解决,我尝试了很多方法仍然无法得到错误。

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

2 个答案:

答案 0 :(得分:1)

你需要声明并设置参数:

if ($uresult->num_rows >0) {

    while($urow = $uresult->fetch_assoc()) {
        $rresult = mysqli_query($con,"SELECT * 
                                      FROM allid 
                                      WHERE postid='$oldid' 
                                      AND spaceid='$newid'");
        mysqli_query($con,"DELETE FROM allid 
                           WHERE postid AND spaceid IS NULL");
        $lrow = mysqli_fetch_assoc($rresult);
        $tem = $lrow['postid'];

        $ujson = json_encode($tem);
        echo $ujson;
    }

} else {
}

- 请记住,商店过程中的参数名称必须与声明的

相同

答案 1 :(得分:0)

JPA 2.1提供了该方法。如果您没有在CLASSPATH中包含JPA API 2.1 jar(而是使用JPA API 2.0),那么您将得到它。修复您的JPA API jar版本(删除JPA API 2.0并包含JPA API 2.1)