【发布时间】:2021-10-21 21:45:18
【问题描述】:
有一些相关的问题,例如:
- Return custom object from Spring Data with Native Query
- No Query defined for that name, when using Entity Manager
但是,它收到错误:没有为该名称定义查询 [getTestFunction],我儿子不知道该尝试什么了。
我的 Oracle 函数
FUNCTION mySchema.MyPackage.getTestFunction(pParam1 VARCHAR2, pParam2 DATE) RETURN SYS_REFCURSOR AS
result SYS_REFCURSOR;
BEGIN
OPEN result FOR
SELECT 123 AS "ID", 'abc' AS "VALUE" FROM DUAL
UNION ALL
SELECT 456 AS "ID", 'def' AS "VALUE" FROM DUAL
UNION ALL
SELECT 789 AS "ID", 'ghi' AS "VALUE" FROM DUAL;
RETURN result;
END getTestFunction;
我的 POJO
public class ResultPOJO {
private String ID;
private String VALUE;
}
我的仓库
@Transactional
@Repository
@SqlResultSetMapping(
name = "testmapping",
classes = {
@ConstructorResult(
targetClass = ResultPOJO.class,
columns = {
@ColumnResult(name = "ID"),
@ColumnResult(name = "VALUE")
}
)
}
)
@NamedNativeQuery(
name = "getTestFunction",
callable = true,
query = "{? = call mySchema.MyPackage.getTestFunction(?,?)}",
resultSetMapping = "testmapping"
)
public class TestDao {
public List<ResultPOJO> getValues(String pParam1, LocalDate pParam2) {
TypedQuery<ResultPOJO> q = entityManager.createNamedQuery("getTestFunction",ResultPOJO.class);
q.setParameter(0, pParam1);
q.setParameter(1, pParam2);
return q.getResultList();
}
}
我错过了什么?
【问题讨论】:
标签: java oracle spring-boot hibernate