没有使用OpenJPA 3.0调用存储过程(其返回REF_CURSOR作为结果)的命名为null的查询结果映射为null的结果。

时间:2019-02-15 10:46:29

标签: java jpa orm openjpa jpa-2.1

在调用使用REF_CURSOR作为结果返回@NamedStoredProcedureQuery作为结果的存储过程时,会收到类似“没有查询来映射名称为null的null的错误。”

使用Callable语句可以调用相同的过程。

但是当我尝试其他过程(将OUT参数作为输出返回)工作正常时。

@NamedStoredProcedureQuery( 
name = "test1",  
procedureName = "test1",  
resultClasses = Result.class,  
parameters = { 
@StoredProcedureParameter(mode = ParameterMode.REF_CURSOR, type = void.class),  
@StoredProcedureParameter(mode = ParameterMode.IN, type = Long.class,name = "ID") 
} 
) 
EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistenceUnit");
EntityManager manager = factory.createEntityManager();
StoredProcedureQuery q = manager.createNamedStoredProcedureQuery("test1");
manager.getTransaction().begin();
q.setParameter("ID",5);
q.execute();
List<Result> resultList = (List<Result>)q.getResultList();

期待的事情:

List<Result> resultList = (List<Result>)q.getResultList();

执行此行后,结果应映射到resultList

0 个答案:

没有答案