1

这有效:

@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,

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

4

1 回答 1

1

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

于 2013-04-20T17:40:43.050 回答