Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不设置命名查询的参数?_Java_Jpa_Jpql - Fatal编程技术网

Java 不设置命名查询的参数?

Java 不设置命名查询的参数?,java,jpa,jpql,Java,Jpa,Jpql,例如,我有一个命名查询: @NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name) 有时我想用一个值来设置'name'参数,有时不需要。如果我没有设置它,是否会导致错误?您必须始终设置它。否则-创建两个查询-一个带param,一个不带param。您可以将公共部分放在常量中(static final)我找到了如下解决方案: if (my test cri

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

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

有时我想用一个值来设置'name'参数,有时不需要。如果我没有设置它,是否会导致错误?

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

我找到了如下解决方案:

if (my test criteria){
     query.setParameter("name", "name of a student");
  }  else {
     query.setParameter("name", " ");
  }
我正在使用空格字符设置name参数,使其正常工作。

相关: