博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
int类型属性判空
阅读量:4560 次
发布时间:2019-06-08

本文共 1576 字,大约阅读时间需要 5 分钟。

在用Hibernate开发查询时遇到的问题,方法的输入参数为一个User对象,其中status和permission属性为int型,

在进行junit单元测试时,只设置email一个参数,测试程序报错,debug进去看后发现new的对象的int类型的属性都是0,java把int类型的属性都初始化为0了.

因为在页面上也有status和permission属性的查询条件输入,这时就有一个问题,当页面不输入status和permission两个查询条件时,后台service无法判断是否为空,,因为都是0

1 String sql = "select U from User U where 1 = 1 "; 2         if(u.getEmail() != null && !u.getEmail().equals("")) { 3             sql += " and U.email = '" + u.getEmail() + "'"; 4         }  5         if(u.getName() != null && !u.getName().equals("")) { 6             sql += " and U.name = '" + u.getName() + "'"; 7         } 8         if(u.getGender() != null) { 9             sql += " and U.gender = '" +u.getGender()+ "'";10         }11         if(u.getStartBirthdate() != null) {12             sql += " and U.birthdate >= " + u.getStartBirthdate() + "'";13         }14         if(u.getEndBirthdate() != null) {15             sql += " and U.birthdate <= " + u.getEndBirthdate() + "'";16         }17         if(u.getStatus() != null) {18             sql += " and U.status = " + u.getStatus() + "'";19         }20         if(u.getPermission() != null) {21             sql += " and U.permission = '" + u.getPermission() + "'";22         }23         Query query = session.createQuery(sql);24         25         if(u.getStart() == null) {26             u.setStart(0);27         }28         if(u.getLimit() == null) {29             u.setLimit(10);30         }

因为int类型的属性会在new对象时自动初始化为0,无法判空

我的解决办法是在实体类中把int类型改为Integer类型,Integer是java类,在初始化时被初始为null,这样就解决了查询条件永远为0的问题.

转载于:https://www.cnblogs.com/dirkmurphyjava/p/3379750.html

你可能感兴趣的文章
UIView 添加闪烁的渐变光
查看>>
js的基础语法(上)
查看>>
安装python出现的问题
查看>>
JS网址
查看>>
winform摄像头拍照 C#利用摄像头拍照
查看>>
C# JavaScriptSerializer 解析Json数据(多方法解析Json 三)
查看>>
前端浏览器兼容问题总结
查看>>
python 调 java(胶水就是胶水)
查看>>
队内训练规矩【2011.9.16晚最后改动】
查看>>
使用nginx lua实现网站统计中的数据收集
查看>>
Centos使用密钥对验证登录SSH
查看>>
Python和Java分别实现冒泡排序
查看>>
C++primer 14.2.1节练习
查看>>
ThinkPHP 3 的CURD介绍
查看>>
全表扫描引发的db file sequential read
查看>>
Linux笔记:vi常用命令
查看>>
网上看到的Document文件夹的说明
查看>>
PostgreSql基础命令及问题总结
查看>>
linux shell 正则表达式(BREs,EREs,PREs)差异比较
查看>>
memcache入门笔记
查看>>