saveorupdate(); 这个方法是设置了主键 他就做修改 。 没有设置主键就做增加
save()也是因为你设置了主键才会做修改。为什么什么会做修改看你是什么状态
Hibernate主要有三种状态:
自由态(新建态):在数据库中是不会存在该对象的,当我们使用session.delete()方法可使对
象变为自由态
持久态(托管态):则数据是处于了持久的内存中的,数据库中有数据的,当我们改变处于持
久态的对象时,数据库中的也会改变可以变为持久态的方法是:
get(),load(),save(),update(),saveOrUpdate(),merge(),(一级缓存)
游离态:数据库中有可能存在的数据,通过session的close(),clear(),evict(Object)三个方法可以
将一个持久态的对象变为一个游离态的对象
你应该使用saveorupdate();