Query qry = session.createSQLQuery(qrystr)
.addScalar("id", Hibernate.INTEGER)
.addScalar("balance",Hibernate.FLOAT);
Object[] headerDetails=(Object[])qry.uniqueResult();
session.close();
System.out.println("balance"+headerDetails[1]);
对于上述代码,当执行查询时,数据库中的值 66996956 返回为 6.6996956E7。
即使对于 DOUBLE,输出也是 6.6996956E7。但是当提供 math.BIG_DECIMAL 时,该值是正确的。为什么 double 和 float 有问题。在代码中,我可以引入 bigdecimal,因为其余数据是浮点数。