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;


这样就可以了。

你可能感兴趣的:(Hibernate)