没有设置命名查询的参数?

时间:2010-12-22 12:15:06

标签: java jpa jpql

例如,我有一个命名查询:

@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name)

有时我想用值设置'name'参数,有时不设置。如果我没有设置它会导致错误吗?

2 个答案:

答案 0 :(得分:1)

你必须始终设置它。否则 - 创建两个查询 - 一个用param,一个没有。您可以将公共部分放在常量(static final

答案 1 :(得分:0)

我找到了这样的解决方案:

if (my test criteria){
     query.setParameter("name", "name of a student");
  }  else {
     query.setParameter("name", " ");
  }

我正在使用空格字符设置name参数,因此它可以正常工作。