中易网

通过Hibernate如何获得存在数据库中的数据?

答案:1  悬赏:30  
解决时间 2021-01-24 02:18
通过Hibernate如何获得存在数据库中的数据?
最佳答案
首先你要了解Hibernate的原理。
如果要用Hibernate,就不要再存在着增、删、改、查这些关系型数据库的概念。
在ORM,或者说在Hibernate的世界中,对象分成三个状态。
临时状态,游离状态,持久状态。

调用session的load方法,也就是加载一个持久状态的对象。从哪里加载?
数显从session的缓存里加载(当然一般session的缓存都是没有的),如果找不到,就去二级缓存里加载(前提是你配置了二级缓存)。如果二级缓存也没有,这时候会去持久化的载体里去加载,当然这个载体一般来说就是数据库。

如果数据库里也没有,当然返回null
所以load跟save没有本质上的关系,也没有依赖关系。save只是把一个临时对象先持久化到内存里,当session关闭时,再把内存里的状态持久化到数据库里罢了。

楼主的问题我不太看得明白。
使用HQL查询所有数据是无法返回包含这10条数据的List。
这个意思到底是:
1:我要返回所有实体对象,但是不包括最开始我手动插入的那10个。但是它给我返回了。
2:我要返回所有对象,包括我最开始手动插入的那10个,但是没有给我返回。

如果是1:Hibernate是无法准确判断这些数据是用户手动插入的或是通过save方法持久化的。所以只能利用id或者另外一些属性特征去判断。

如果是2:应该是不可能,如果要检索所有对象,不管它在缓存中,还是在数据库中,都是可以检索出来的。除非它不存在。
2出现的原因,可能是对于HQL语言的不了解。

如果楼主说得仔细点,可能回答也会更详尽些。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
mc牟天任喊麦浪子DJ版背景音乐是什么
工资的个人所得税怎么算的,从多少起开始要交
关于荷兰留学以及爱尔兰留学的问题 请有经验
脸部皮肤暗黄粗糙毛孔粗大
[image]20 你好,我的甲醛HCHO0.05,TVOC是0.3
多功能美容仪器OPT怎么样?
结合实际谈谈基本分析和技术分析各有哪些优势
请问谁知道家里装摄像头多少钱
什么叫债务抵押贷款
农村别墅设计图纸哪位有?一般农村别墅设计应
新房墙面装修用什么材料比较环保,耐用
中山哪里有新麦格假体隆胸的,价格多少?
龙马结合生什么属相好
腾达AC10和K2P有什么区别
用超长螺丝固定2.5寸硬盘
推荐资讯
桑树 榆树 槐树 图片及文字说明
两岁儿童手指甲上有白斑点是什么原因导致的?
韩式眼部整形怎么样啊
填外国表单时中国固定电话号码怎样填
怎么把EXCEL恢复到创建日期
韩国哪里滑雪场最好?距离首尔远吗?比国内的
我用过一个软件叫qq百变语音,之后我的qq语音
请问100度近视,50度散光,需要佩戴眼镜吗。1
房地产商更改楼层结构,简单介绍下
在日常生活中如何避免亚健康状态,吃哪些食物
菜鸟驿站(天津万科仕林苑外围底商店)怎么去啊
湖南豪享航空服务有限公司
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?