从hibernate 3调用StoredProcedure导致(遍历节点不能为空!)

时间:2013-02-14 09:06:30

标签: hibernate jpa

由于设计限制,我需要使用entityManager.createQuery() API从hibernate调用SP。将此entityManager.createQuery("call xxx(:caseId)")结果称为“java.lang.IllegalArgumentException: node to traverse cannot be null!”。我尝试了其他选项,如entityManager.createQuery("call xxx(?1)")等。导致同样的错误。我错过了什么?我知道错误是非常通用的,并且与某种语法问题有关。

有人能告诉我使用createQuery调用SP的正确语法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用org.hibernate.Session

Query query = session.createQuery("CALL xxx(:caseId)").setString("caseId", valueForIt);

注意:如果caseId不是String,请使用相应的set方法。

现在您可以执行query.executeUpdate(),或者如果您想要返回某些内容(例如列表),您可以执行query.list()