【问题标题】:SetParametres in Query查询中的设置参数
【发布时间】:2016-05-11 10:14:12
【问题描述】:

我正在尝试设置一个包含很多参数的查询。

对于具有 1 个参数的查询,它的工作正常:

//**
    List<?> list = null;
    String query = String.format("from %s where %s = :%s ", a, uniqueField[0], uniqueField[0]);
    list = s.createQuery(query).setParameter(uniqueField[0], arg0.getSsn()).list();

我怎样才能对这个查询做同样的事情:

List<?> list = null;
String query = String.format("from %s where %s = :%s and %s = :%s ", a, uniqueField[0], uniqueField[0], uniqueField[1], uniqueField[1]);
// list = s.createQuery(query)... ?

感谢您的任何建议..

【问题讨论】:

  • 您不应该使用数据库 API 吗?
  • @Nicholas 我正在使用 Hibernate
  • 只需命名参数然后:“:param1”,“:param2”。然后 q.setParameter(":param1", value1).setParam(":param2", value2) ...
  • @Nicholas 你可以把它作为答案发布,这样我就可以提交它:p

标签: jakarta-ee sessionfactory createquery


【解决方案1】:

使用查询时,您可以使用命名参数或位置参数。命名参数非常简单,我不确定性能影响是什么:

所以,只需将参数命名为:“:param1”、“:param2”。然后 q.setParameter(":param1", value1).setParam(":param2", value2)。

参考: In JPA which type of parameter is better to use “positional/named”?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多