程序
CREATE OR REPLACE PROCEDURE GET_ALL_ITEM_TYPE
(
cur_OUT OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN cur_OUT FOR
SELECT * FROM PG_ITEM_TYPE ;
END GET_ALL_ITEM_TYPE;
模型类
@NamedNativeQueries({
@NamedNativeQuery(
name = "getAllItemType",
query = "CALL GET_ALL_ITEM_TYPE(?)",
resultClass = GdItemType.class
)
})
DAO
@Override
public List<GdItemType> getAllGdItemType() {
Session session = this.sessionFactory.getCurrentSession();
Query query = session.getNamedQuery("getAllItemType");
List<GdItemType> result = query.list();
return result;
}
我收到错误预期位置参数计数:1,实际参数:[] [CALL GET_ALL_ITEM_TYPE(?)]。 我无法理解这个问题是什么。
答案 0 :(得分:1)
您的存储过程有一个输出参数,映射包含对它的引用。因此,Hibernate期望提供参数。
您可以尝试添加Hibernate查询提示
@javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") }
或将存储过程映射更改为
@NamedNativeQueries({
@NamedNativeQuery(
name = "getAllItemType",
query = "? = CALL GET_ALL_ITEM_TYPE()",
resultClass = GdItemType.class
)
})