2 npf8888 npf8888 于 2014.09.30 16:28 提问

关于hibernate的session.saveOrUpdate()底层实现的问题

这个问题会有点模糊,因为我的目的是想知道 session的增删改查底层实现原理,所以我详细看了下(以saveOrUpdate()方法为主)saveOrUpdate的流程,它的底层相当的庞大,我很认真的看源码,但是其中有很大一部分我都看不懂,我想知道从session.saveOrUpdate(Object javaBean)此方法开始到结束,那个作者是怎么想出来的,那么多的成员变量和局部变量,都是用在哪里的,要怎么看hibernate的源码?
Session.saveOrUpdate()目的是为了 新增或者更新 ---执行sql语句 insert或者update
但是insert 或update是自动生成所以要有org.hibernate.sql包来生成sql,还有事物的设置,
但是我能想到的做一个hibernate的需求就这么多了,可是源码中的变量和类多的都不敢想象,我在想它们都用在那个流程,起到什么作用,真是没有办法啦、啊啊啊啊啊啊
最好-->能够给我提供一些好的书本或者文章(专门针对hibernate底层框架<其他的框架spring、struts2也要>的书或者文章),我在网上完全搜不到hibernate的底层的知识,根本就没有半个人写过关于hibernate底层的东西,我渴望了解它的底层,希望有IT界的朋友帮帮忙,我会感激不尽,真的、谢谢

1个回答

qq_36395112
qq_36395112   2017.11.08 09:10

底层实现没看过,不过saveOrUpdate 的实现可以用sql语句 INSERT INTO xxx VALUES xxx ON DUPLICATE KEY UPDATE xxx 来实现它,根据主键id
或unique SQL会自己决策是保存还是更新

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!