【问题标题】:jpa named query : named bind variables for listjpa 命名查询:列表的命名绑定变量
【发布时间】:2012-12-12 01:33:42
【问题描述】:

如果您有一个带有类似列表的命名查询:

@NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN ('Jack', 'Jill')")

是否可以将列表命名为绑定变量,以便您设置所需的内容:

q.setParameter( .......  );

欢迎提出建议

【问题讨论】:

    标签: java sql jpa


    【解决方案1】:

    是的,这是可能的。就像对任何其他参数一样:

    @NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN :names")
    
    q.setParameter("names", Arrays.asList("Jack", "Jill"));
    

    【讨论】:

    • 不需要括号?其他答案包括他们——在this answer 找到了一些细节
    【解决方案2】:

    这样使用

    @NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN (:availableCollection)") 
    
    
    namesCollection // conatains your Lsit of names
    
    query.setParameterList('availableCollection', namesCollection);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多