mysql数据库默认字段对hibernate查询的影响(原创)

今天

 public void testFindByExample() {

SimFeesimF=newSimFee();

simF.setFee(100d);

System.out.println(simF.getFee());

Listlist=dao.findByExample(simF);

assertEquals(100d,((SimFee)list.get(0)).getFee());

}

执行咋也不出结果,数据库明明有fee等于100.0的,输出也是100.0可是list就是为0

后来一看后台的输出语句才知道。SimFee 里

 private long id;

privateSimsim;

privatelongtester;

privateDatemonth;

privatedoublefee;

tester是数值型的。select查询的时候,会将数值型的默认数值为0或0.0此外boolean类型的实体字段为false

而实际我们要的是null。(我只setFee了,那么tester默认设置为0,所以没有数据可以查出来)

对象类型的自动默认的是null。所以我们就改为

 private long id;

privateSimsim;

privateLongtester;

privateDatemonth;

 private Double fee;

这样就可以了。

相关推荐