0

由于设计限制,我需要使用entityManager.createQuery()API 从休眠中调用 SP。在“”中调用此entityManager.createQuery("call xxx(:caseId)")结果java.lang.IllegalArgumentException: node to traverse cannot be null!。我尝试了其他选项,例如 entityManager.createQuery("call xxx(?1)")etc..all 导致相同的错误。有什么我想念的吗?我知道该错误非常普遍,并且与某种语法问题有关。

任何人都可以让我知道调用 SP 的正确语法createQuery吗?

4

1 回答 1

0

你可以使用org.hibernate.Session这个:

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

注意:如果 caseId 不是字符串,请使用适当的 set 方法。

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

于 2013-02-14T10:06:04.413 回答