Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
Hibernate取Session需要用单例吗?
08-05-23
herowzz
我用eclipse自动生成的代码看里面的HibernateSessionFactory里取session用的是单例模式。
hibernate取session需要用单例吗?
难道没有取两个不同的session的需求吗?
请问各位朋友在各自的项目里也是用的单例取的session吗?
如果是单例的话那什么时候关闭session呢?
b612
2008-05-26 15:46
由于最近刚接触Hibernate,作为同病相怜的人,在这里友情赞助你一下;顺便说一点我的想法,
首先说明一点:对于Hibernate当Session加载了持久化对象后,会为这个对象的值类型的属性赋值一份快照。当Session清理缓存时,通过比较这个对象的当前属性与它的快照,Session能够判断这个对象的哪些属性发生了变化。
然后开始正文:我的理解,这个Session对象必须是单例的,这样所有的用户才能共享同一个Session缓存,举例说明:当其中一个用户A获取了apple对象的信息后,存入缓存;这时用户B修改了apple对象的信息,并存入缓存,由于A和B用户访问的是同一个缓存,所以避免了并发的问题;
以上只是我的初学观点,希望大家指正;谢谢
herowzz
2008-05-29 22:19
我不知道是因为这个论坛的太冷清了还是我的问题太简单已至于没人愿意回答
这个问题我已经在csdn上得到解决了
http://topic.csdn.net/u/20080523/22/af200c31-2e38-4246-b1ac-1c3f7ae0a74a.html
你可以参看。。。
banq
2008-05-30 11:02
你的帖子其实已经触犯Jdon的两个立场:
1. 反对MyEclipse, 反对使用它的自动代码生成,因为它的逻辑是:数据库是妈妈;实体代码是孩子;按照OO概念,正好应该相反,否则误用Hibernate;
2. 反对单例,实战中不要有单例概念,单例是反模式的,单例是邪恶的,这个已经在本站讨论,所以,不可能有绝对的单例,只有相对的单例。
Session相当于connection,如果你想单例也可以,共用一个数据库连接,那么多线程多用户系统变成单用户。