栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JPQL查询中的集合上检查NULL?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JPQL查询中的集合上检查NULL?

所以我被困在做类似的事情。基本上,您要检查是否

  1. 您传递的集合为空:然后不要在查询中包括它
  2. 您要传递的集合已填充:然后将其包括在查询中

问题在于没有好的方法来处理这部分:

:categories = NULL

这是因为当转换为SQL时,它将看起来像这样(当集合中有2个项目时):

@p0, @p1 = NULL

您也不能将其包装在括号中,因为这在SQL中无效:

(@p0, @p1) = NULL

我试图使用合并将值减小为NULL,但是我也无法使它起作用。

基本上,根据我的判断,JPQL中没有任何东西可以让您运行集合的某种功能(哈希集等)以查看其是否已填充。如果有人知道一个,请告诉我们。

最终,我诉诸黑客,在调用代码中检查集合以查看是否已填充集合。如果不是,我简单地再传递一个参数…一个空字符串。

String catString = "";if (categoryList != null && !categoryList.isEmpty()) catString = "HasCats";

然后在JPQL中执行以下操作:

WHERe (:catsString = '' or cats IN (:categories)) "

这不是世界上最好的解决方案,但它是有效的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号