hibernate的saveOrUpdate方法为什么无法保存或修改数据

J2EE 码拜 8年前 (2016-03-19) 2479次浏览
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用具体的类型替换,就可以了,莫非真是泛型的原因,本人是摸不着头脑了啊,哪位大哥给本人指点一二啊。

解决方案

30

你在用BaseDAO<T>  时候有给出具体的泛型吗
例如 new BaseDAO<person>()

10

为什么要用泛型?本人在hibernate的savaorupdate方法本人一般传入Object类型,只要xml有配置的实体类传入他都可以自动识别的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hibernate的saveOrUpdate方法为什么无法保存或修改数据
喜欢 (0)
[1034331897@qq.com]
分享 (0)