中易网

hibernate session 自动保存?

答案:3  悬赏:80  
解决时间 2021-02-16 15:24
获得一个实体后,我set了一个值,没做update为什么会更新数据库
最佳答案
session里的pc ,当一个实体被托管以后, 会自动跟数据库里同步的

具体可以打个断点,看一下
全部回答
你对flush和commit的意思没有理解到: 1,flush代表刷新,同步一级缓存中的对象到数据库中,仅仅代表把sql刷到了数据库中, 2,commit代表提交事务,tx.commit之后,之前发送的sql才真正提交了,数据表里面才有值; 3,在默认情况下,commit之前都要自动调用flush, 所以: 1,session.save();session.flush()只是把sql发到了数据库中,事务没有提交,数据表中还是没有数据的, 2,session.save(),transaction.commit(),在commit的之前,隐含调用了flush,即发送了sql,又提交了事务,所以有值; 你可以看看我的个人说明,里面有hibernate的更详细的视频资料。希望对你有用。
1 hibernate会保存数据副本,也就是session 2 hibernate是否会吧副本中的数据库更新保存到db,由三态决定(俗语) A transient 暂时滴 跟hibernate没关系的都是transient 比如你数据库中有book实体. 你在任意一个地方new Book();都是transient.他不会更新到db(要更新才见鬼呢) 总结:内存中自由存在.跟db无关(啥叫无关?看B就明白了) B Persistent 持久滴.从db中取出来的都是persistent. 比如Object o = session.get(); 这个o对象,你一旦set,就会persistent到db.这就是你上边说的自动保存 总结:从db中取出来的(当然还有别的方式) c Detached 分离.从db中取出来之后,session关了. 你set任意属性,hibernate想给你自动保存,也不可能啊 这段精华值 200块钱. 你得给我加分噻
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问今年南红玛瑙原石价格多少?是极品柿子红
衢州市经济特产站怎么去啊,有知道地址的么
求:Windows 8.1 企业版 激活密钥,多谢大神
【战争起源于人之思想,故务需于人之思想中筑
汗水湿在衣服干了有汗红的
CMS监控软件下载
同方药业NO.26这个地址在什么地方,我要处理
从芳村客运站到顺德大良钟楼公园美食节
新房暗线中有线电视线不用分支器如何连接
正康按摩地址有知道的么?有点事想过去
电脑能放在行李箱里吗
周星驰一共拍了多少部电影?
男装哪些牌子适合25岁的人穿
苏州大学材料与化学化工学部
郑州富士康有纹身可以吗,(男的)
推荐资讯
犹当下同郭与李 手提两京还天子 怎样解释
不铁钢杯可以存放白酒吗
dota 命令 所有命令
增城区城市管理综合执法局正果中队地址有知道
20尺柜尺寸是589*235*233cm,外箱尺寸是188*11
毛栗坡地址在哪,我要去那里办事
自然堂水润保湿柔肤水的瓶装的材质是什么,是
计算机信息系统集成资质证书和计算机信息系统
荣耀2手机。如图,这个视频为啥不能播放,求
淮南市中医院-门诊部我想知道这个在什么地方
我分期付款买了个电瓶车现在没钱还怎么办好伤
玄武岩柱石地址有知道的么?有点事想过去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?