java - 如何在 Hibernate createSQLQuery() 中传递多个参数?

标签 java mysql hibernate

我正在尝试使用 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) 选项,但根本找不到很多这样的例子,也不知道它是如何工作的。

如果我需要多个参数怎么办?我可以用同样的方式做到这一点吗?

最佳答案

再次调用setParameter:

Query query = session.createSQLQuery("CALL StoredProcedureTest(:parameter1, :parameter2)")
   .addEntity(DBModel.class)
   .setParameter("parameter1", parameter1)
   .setParameter("parameter2", parameter2);

关于java - 如何在 Hibernate createSQLQuery() 中传递多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17390625/

相关文章:

php - 我如何以提供相同输出的方式重写它

java - 允许从键盘输入特定语言的字符

java - 无法使用spring和hibernate集成自动创建表并插入记录

java - 以 XML 格式列出 pom 实际使用的 Maven 插件

PHP mySQL 查询使用变量更新表中的行

java - 是否可以创建一个数组列表?

MySQL 连接与关系表上的匹配

java - JPA 生成重复键

java - 在我的 Java 程序中添加一个简单的 Enter 键功能

java servlet 重复帖子