为什么我hibernate只写了save()方法 ,但是数据库不仅会insert 还会进行update()操作。
展开全部
saveorupdate(); 这个方法是设置了主键 他就做修改 。 没有设置主键就做增加
save()也是因为你设置了主键才会做修改。为什么什么会做修改看你是什么状态
Hibernate主要有三种状态:
自由态(新建态):在数据库中是不会存在该对象的,当我们使用session.delete()方法可使对
象变为自由态
持久态(托管态):则数据是处于了持久的内存中的,数据库中有数据的,当我们改变处于持
久态的对象时,数据库中的也会改变可以变为持久态的方法是:
get(),load(),save(),update(),saveOrUpdate(),merge(),(一级缓存)
游离态:数据库中有可能存在的数据,通过session的close(),clear(),evict(Object)三个方法可以
将一个持久态的对象变为一个游离态的对象
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询