【问题标题】:Syntax for input parameters with ? in a MySQL query带 ? 的输入参数的语法在 MySQL 查询中
【发布时间】:2015-01-13 08:00:42
【问题描述】:

我有一个与Syntax for input parameters in a MySQL query 相同但不同的问题。

在上面的链接中,查询是使用@ 变量实现的。我已经用? 实现了一个查询。它不起作用..代码在这里

String queryString = "from OptimumMeasure as model where model.id.goalId= ? " +
    " and model.id.questionId= ? and model.id.attributeId= ?"; 
        Query queryObject = getSession().createQuery(queryString);
        queryObject.setParameter(0, goalId);
        queryObject.setParameter(1, questionId);
        queryObject.setParameter(2, attributeId);
        return queryObject.list()

提前致谢。

【问题讨论】:

  • 怎么不工作了?您收到错误消息了吗?
  • 实际上它正在运行,但它没有取变量的值..
  • 你用的是java持久化吗?我认为您将 sql 准备语句语法与 java 持久性语法混淆了。在此处查看底部的位置参数docs.oracle.com/javaee/6/tutorial/doc/bnbrg.html
  • @Phil_1984_ 是的,我很困惑,谢谢。我正在使用 Java 持久性。它没有返回值。它将 NULL 传递给我调用它的其他方法。我不知道为什么会这样。
  • 我认为您使用的是休眠对吗?

标签: mysql syntax


【解决方案1】:

只是一个猜测,但您似乎不太可能拥有一个除了 id 之外的任何“id”属性。

尝试使用链接对象的属性名称,然后是它的 id:

from OptimumMeasure as model
where model.goal.id = ?
and model.quaestion.id = ?
and model.attribute.id= ?

【讨论】:

  • 波西米亚 .. 不不。它不是这样的。语法没问题,但是将值返回到其他方法时会出现一些问题。
猜你喜欢
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 2014-07-11
  • 2014-11-12
  • 2017-08-05
相关资源
最近更新 更多