2

我正在尝试使用 Hibernate 调用存储过程。我似乎无法找到如何传递多个参数?

我知道使用一个参数可以做到这一点:

Session session = HibernateUtil.getSessionFactory().openSession();
...
Query query = session.createSQLQuery("CALL StoredProcedureTest(:parameter)")
.addEntity(DBModel.class)
.setParameter("parameter", parameter);

ArrayList<DBModel> results = query.list();

我注意到有一个.setParameters(Object object[], Type[] types)选项,但根本找不到很多这样的例子,也不知道这是如何工作的。

如果我需要多个参数怎么办?我可以用同样的方法吗?

4

2 回答 2

13

再次调用 setParameter:

Query query = session.createSQLQuery("CALL StoredProcedureTest(:parameter1, :parameter2)")
   .addEntity(DBModel.class)
   .setParameter("parameter1", parameter1)
   .setParameter("parameter2", parameter2);
于 2013-06-30T13:03:56.250 回答
2

你总是可以继续这条线:

Query query = session.createSQLQuery("CALL StoredProcedureTest(:parameter, :parameter2)")
.addEntity(DBModel.class)
.setParameter("parameter", parameter).setParameter("parameter2", parameter2);
于 2013-06-30T13:04:39.403 回答