日期:2014-05-18  浏览次数:21020 次

hibernate的saveOrUpdate方法为什么无法保存或修改数据?
public class BaseDAO<T> implements IBaseDAO<T> {

@Resource
protected SessionFactory sessionFactory;

public Session getSession() {
//return HibernateSessionFactory.getSession();
return sessionFactory.getCurrentSession();
}
//........
public void saveOrUpdate(T transientInstance) {
getSession().saveOrUpdate(transientInstance);
}
}


如上,就是这个basedao,我用泛型T将saveOrUpdate方法统一写在一起,应该没问题吧,但是我在调saveOrUpdate时(service层调用它),程序平稳执行,不报异常,但就是保存/更新都没有进到数据库

可能是什么原因啊,主键在新增是null,在更新时值也是对的,也不报错,就是存不了,是怎么回事啊?

如果我把方法写到具体的dao中,T用具体的类型替换,就可以了,难道真是泛型的原因,我是摸不着头脑了啊,哪位大哥给我指点一二啊。
------解决方案--------------------
你在用BaseDAO<T>  时候有给出具体的泛型吗 

比如 new BaseDAO<person>() 
------解决方案--------------------
为什么要用泛型?我在hibernate的savaorupdate方法我一般传入Object类型,只要xml有配置的实体类传入他都可以自动识别的。