工作日常错误之动态查询无果
博客专区 > kds 的博客 > 博客详情
工作日常错误之动态查询无果
kds 发表于1年前
工作日常错误之动态查询无果
  • 发表于 1年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

动态查询数据查不到结果

今天跟大家分享一个工作中的小错误,与大家共勉,么么哒

今天遇到的错误呢其实很简单,是一个方法使用的错误

首先请大家来看一看这两个方法有什么区别

criteria.add(Restrictions.isNull("decidedzone"));

criteria.add(Restrictions.isEmpty("decidedzones"));

(decidedzone是我们pojo中的一个对象,decidedzones是我们另一个pojo中的一个存储decidedzone对象的集合)众所周知这是我们QBC中的一个常见的动态查询条件拼装。但是,如果我们像下面这样写语句的话:

criteria.add(Restrictions.isNull("decidedzones"));

criteria.add(Restrictions.isEmpty("decidedzone"));

控制台就会给我们抛出 HibernateSystemException 和 MappingException,当我们用网页上的开发者工具抓包的时候会发现一个 Uncaught TypeError:Cannot read property的错误,这两个错误会同时报。那么问题来了,为什么会报这种错误呢?同样是因为一个条件拼装的语句出了错误。

最终原因:Dicidedzones是一个集合,而Dicidedzone是一个对象。条件拼接语句方法中Restrictions.isNull()方法操作的是一个对象,而Restrictions.isEmpty()操作的是集合,如果我们用isNull()操作集合(Dicidedzones)或者是用isEmpty()操作对象(Dicidedzone)的话,就会在我们的jar包中出现类型匹配错误从而不能返回成功,所以就会报出不能返回连接的错

希望宝宝们以后不要犯我这样的错误啊

共有 人打赏支持
粉丝 3
博文 6
码字总数 3680
×
kds
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: