SpringSide3 HibernateDao中get()的返回
春天边边,今天被误导,在此记录在侧!
起因:接收一个用SpringSide开发的项目,今天在后台调用如下代码:
userGroup = userGroupDao.get(id);
其中:
public class UserGroupDao extends HibernateDao<UserGroup, Integer>
满心以为当如果从DB中没有检索到对应条件的记录则返回null,但是null后续的业务一直进不去。从google上的结果都说检索结果为空时get()返回null,load()返回一个代理对象,怎么我用起来结果就不对了呢?debug时发现userGroup中多了个handler属性,其余属性皆为null,对handler没有敏感,查来查去找不到问题原因,无奈直接查看引用的jar包,顿时天雷滚滚~~
请看jar中get()方法的定义:
public Object get(Serializable id) {
Assert.notNull(id, "id不能为空");
return getSession().load(entityClass, id);
}
什么get()\load(),一样货色!
哎,误人误人啊,特此记录!