输入参数的语法?在MySQL查询中

输入参数的语法?在MySQL查询中,mysql,syntax,Mysql,Syntax,我有一个和你问的一样但又不同的问题 在上面的链接中,查询是通过@变量实现的。我用?实现了一个查询。它不起作用了。。代码在这里 String queryString = "from OptimumMeasure as model where model.id.goalId= ? " + " and model.id.questionId= ? and model.id.attributeId= ?"; Query queryObject = getSession().cr

我有一个和你问的一样但又不同的问题

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

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()

提前谢谢。

只是一个猜测,但您的“id”属性似乎不太可能不是id

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

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

它怎么不起作用?您是否收到一条错误消息?实际上它正在运行,但它不接受变量的值。您是否使用java持久性?我认为您混淆了sql准备语句语法和java持久性语法。请参见底部的位置参数@Phil_1984_是的,我很困惑,谢谢。我正在使用Java持久性。它没有返回值。它将NULL传递给我调用它的另一个方法。我不知道为什么会这样。我想你在用hibernate,对吧?波希米亚。。不,不是这样的。语法没有问题,但将值返回到其他方法时有一些问题。