hibernate中的update()与saveOrUpdate()的区别,load()与get()的区别,Hibernate与JPA的区别。

hibernate中的update()与saveOrUpdate()的区别,load()与get()的区别,Hibernate与JPA的区别。网络搜索粘贴者不给分。... hibernate中的update()与saveOrUpdate()的区别,load()与get()的区别,Hibernate与JPA的区别。网络搜索粘贴者不给分。 展开
 我来答
溥曼凡03F
2011-11-12 · TA获得超过227个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:157万
展开全部
这是我的总结:
1:Hibernate 的get和load方法的区别
当查询的数据不存在时表现不一样:load:延迟检索 get:立即检索
1:load返回的是代理对象,等到要用该对象时,才会发sql语句从数据库取, 当数据库没有对应的记录时会报错
2:get 直接从数据库加载,不会延迟加载,当数据库没有对应的记录时返回null.
2:save 和update区别
save的作用是把一个新的对象保存
update是把一个脱管状态的对象保存
3:persist(),save(),saveOrUpdate()区别 persist():只接受临时状态的对象,即主键没有值的对象,如果传递一个非临时状态的对象给它,则会抛出异常。
save():无论对象是否处于临时状态都会向数据库保存。saveOrUpdate():如果主键有值则执行update,如果主键没有值则执行insert
4:load()---->setXX() 和 update()区别
load()--->setXX():支持动态更新:此时需要在配置文件里加上:dynamic-update="true"update:用来更新托管状态的对象,使其变成持久状态。更新一个没有主键对应值的临时对象不会成功:。
jpa是用注释的,不需要为每张表配置hibernate映射文件。
小莫哥哥1
2011-11-05
知道答主
回答量:9
采纳率:0%
帮助的人:7万
展开全部
1、你如果学过数据库的话,应该知道更新的原理吧,更新是删除旧的数据保存(添加)新的数据,所以应该很容易理解update和saveorupdate的区别
2、首先load和get都是查询时使用的方法,这个你应该清楚,然后区别主要是查询的位置不同
load():先在一级缓存中查找数据,若没有则在二级缓存中查找,如果二级缓存中没有,则在根据是否配置了延迟加载(lazy),若没有配置延迟加载,则直接向数据库中查找数据,若配置了延迟加载,则直接返回一个代理类,只有在触发代理类的调用是才进行数据库查询
get():只在一级缓存中查找,若一级缓存中没有查找到则直接查找数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenlei65368
2011-11-09 · 超过16用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:21万
展开全部
saveOrUpdate() 是如果数据库不存在该条数据,则调用save,如果存在则调用update
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式