如果将null值作为布尔参数传递,则使用布尔条件的JPA命名查询不起作用

时间:2013-04-20 17:36:19

标签: null boolean jpa-2.0

本作品:

@NamedQuery(name="all_submissions",query="select s from Submission s where (s.id= :id or s.testCode= :code or s.user.email = :email) and s.readOnce != NULL")

s.readOnce!= NULL

但这不起作用

@NamedQuery(name="search_submissions",query="select s from Submission s where (s.id= :id or s.user.email = :email or s.testCode = :code) and s.readOnce != :readonceflag")

s.readOnce!=:readonceflag

query.setParameter( “readonceflag”,NULL);

@Column(name="read_once")
public Boolean readOnce;

#sql
read_once  boolean null,

那么,我如何使用布尔属性实现非空检查?

1 个答案:

答案 0 :(得分:1)

有效语法类似于SQL:where s.readOnce is not null。您必须将null视为特殊情况。您无法与=进行比较。 SQL中没有任何内容等于null,甚至不是null。