我有数据库表 Employee,它包含以下字段。
eid(VARCHAR 20) numOfUnit(编号 15,2) paidAmt(编号 15,4) paidUnit(编号 15,6)
-------------------------------- ----------- ------------ ----------- ----------------------< em>------------------------------------------
AB1001 0 0 0
And i am trying to execute the below code in java. But it is not returning anything.
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 运行相应的原始查询。
关于java - 无法使用类型编号的 where 条件从数据库中检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497464/