例如,我有一个命名查询:
@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name)
有时我想用值设置'name'参数,有时不设置。如果我没有设置它会导致错误吗?
答案 0 :(得分:1)
你必须始终设置它。否则 - 创建两个查询 - 一个用param,一个没有。您可以将公共部分放在常量(static final
)
答案 1 :(得分:0)
我找到了这样的解决方案:
if (my test criteria){
query.setParameter("name", "name of a student");
} else {
query.setParameter("name", " ");
}
我正在使用空格字符设置name参数,因此它可以正常工作。