java - 无法使用类型编号的 where 条件从数据库中检索行

标签 java sql hibernate oracle11g

我有数据库表 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) 吗?

最佳答案

这是推测性的,但我认为将 numOfUnitpaidAmtpaidUnit 字段与字符串进行比较并不合适文字,而实际上这些列是数字。尝试将它们与数字进行比较:

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/

相关文章:

sql - 查询 View 以获取其列名

php - MySQL查询使用日期范围获取数据

java - 从文件读取日期时出现 ParseException

java - JSTL c :set a bean property with an array, 调用了错误的 setter 方法

java - 为什么我在使用Eclipse(Android)时仍然无法使用fragment?

c# - 是否可以写出一个 C# double 并用 Java 读取它?

python - 如何删除表中除前 5 条记录之外的所有记录

java - Hibernate实体只有一列,没有名字

java - 与 Bean Validation API 结合使用时,Hibernate 不遵循 JPA 规范?

c# - NHibernate 惰性问题