为什么我hibernate只写了save()方法 ,但是数据库不仅会insert 还会进行update()操作。

 我来答
14112934
推荐于2018-04-24
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部

saveorupdate(); 这个方法是设置了主键 他就做修改 。 没有设置主键就做增加

save()也是因为你设置了主键才会做修改。为什么什么会做修改看你是什么状态

Hibernate主要有三种状态:

自由态(新建态):在数据库中是不会存在该对象的,当我们使用session.delete()方法可使对

                  象变为自由态

持久态(托管态):则数据是处于了持久的内存中的,数据库中有数据的,当我们改变处于持

                  久态的对象时,数据库中的也会改变可以变为持久态的方法是: 

                  get(),load(),save(),update(),saveOrUpdate(),merge(),(一级缓存)

游离态:数据库中有可能存在的数据,通过session的close(),clear(),evict(Object)三个方法可以

        将一个持久态的对象变为一个游离态的对象

s0h7a20
2011-06-03 · TA获得超过169个赞
知道答主
回答量:181
采纳率:0%
帮助的人:134万
展开全部
你应该使用saveorupdate();
更多追问追答
追问
我试过 貌似效果一样 。。。。。
追答
不会的,除非你去改了hibernate底层的方法,你是查出来数据有两条吗?你把代码贴给我看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式