java - 无法使用类型编号的 where 条件从数据库中检索行
问题描述
我有数据库表 Employee,它包含以下字段。
eid(VARCHAR 20)numOfUnit(编号 15,2)paidAmt(编号 15,4)paidUnit(编号 15,6)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ _ _ - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ _ _ - - - - - - - - - - -- - - - - - - -
AB1001 0 0 0
我正在尝试在java中执行以下代码。但它没有返回任何东西。
List <Employee> emplist = new ArrayList<Employee>(session.createQuery(
"from Employee where "
+ " eid='AB1001' and numOfUnit='0' and paidAmt='0' and paidUnit='0'").list());
System.out.println("emp size:: "+emplist.size());
Pojo 类字段定义:
private String eid;
private Double numOfUnit;
private Double paidAmt;
private Double paidUnit;
我不知道我上面的查询有什么问题。我们需要在我的 where 条件下给出十进制值(0.0)吗?
解决方案
numOfUnit
这是推测性的,但在我看来,将、paidAmt
和字段与字符串文字进行比较并不合适,而paidUnit
实际上这些列是数字的。尝试将它们与数字进行比较:
List <Employee> emplist = new ArrayList<Employee>(session.createQuery(
"from Employee where "
+ "eid = 'AB1001' and numOfUnit = 0 and paidAmt = 0 and paidUnit = 0").list());
System.out.println("emp size:: "+emplist.size());
如果上面运行了,但仍然生成一个空列表,那么接下来要检查的是直接针对 Oracle 运行相应的原始查询。
推荐阅读
- html - 在设置了字间距的段落下划线
- class - uml - 带有 typedef 的模板类图
- c# - 将数据从列表框导出到 Excel [C#]
- javascript - 使用编程范围滑块的值输入
- xamarin - Xamarin + MvvmCross + Azure 移动应用表请求不起作用
- functional-programming - 在 Nix 中,如何重构此配置?
- java - 比较java中2个数组的每个值,对于每个相同的值+4和-1,如果不是
- pyinstaller - Python 3.7,pyinstaller:错误:参数 -d/--debug:无效选择
- python - 尝试在 2.7 环境中 pip 安装 MySQL-python
- c++ - GLSL C++ glVertexAttribPointer & glDrawElements 返回 GL_INVALID_OPERATION