Query query = em.createQuery(
"select count(u) from User u where (u.id=:a) and (u.photo=:b)")
.setParameter("a",userId).setParameter("b",null);
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想检查用户照片是否上传(照片值是否为空).我试过上面的查询.
请参阅Hibernate文档中的示例.
你应该检查参数是否为null:
Query query = em.createQuery(
"select count(u) from User u where (u.id=:userId) and (u.photo is null)")
.setParameter("userId",userId);
Run Code Online (Sandbox Code Playgroud)
如果您要推广“ b”,以便某个方法可以接收给定的搜索值或null,则通常可以这样做:
Query q = em.createQuery (
"SELECT ... WHERE ... ( :b IS NULL AND u.photo IS NULL OR u.photo = :b )"
);
q.setParameter ( "b", searchValue ); // can be null
...
Run Code Online (Sandbox Code Playgroud)
还有就是用这种方法的帮助这里(见parameterizedWithNullHql())。
| 归档时间: |
|
| 查看次数: |
13523 次 |
| 最近记录: |