日期:2014-05-16  浏览次数:20732 次

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

今天

?public void testFindByExample() {
??SimFee simF = new SimFee();
??simF.setFee(100d);
??System.out.println(simF.getFee());
??List list = dao.findByExample(simF);
??assertEquals(100d, ((SimFee) list.get(0)).getFee());
?}
执行咋也不出结果,数据库明明有fee等于100.0的,输出也是100.0可是list就是为0
后来一看后台的输出语句才知道。SimFee 里

?private long id;
?private Sim sim;
?private long tester;
?private Date month;
?private double fee;
?
tester是数值型的。select查询的时候,会将数值型的默认数值为0或0.0此外boolean类型的实体字段为false
而实际我们要的是null。(我只setFee了,那么tester默认设置为0,所以没有数据可以查出来)
对象类型的自动默认的是null。所以我们就改为

?private long id;
?private Sim sim;
?private Long tester;
?private Date month;
?private Double fee;


这样就可以了。