社区
Java SE
帖子详情
一直不太明白hibernate怎么能作到集群啊!
nil2000
2007-12-28 12:11:07
如果有很多Server集群运行一个应用啊
1.
Hibernate的session如果并发持久化同一个对象,不会有问题吗?
2.
如果有第三方(比如为了业务需要,需要手工执行一段sql)操作了已经存放在session里的持久对象,不会有问题吗?
希望能帮助我啊
...全文
110
7
打赏
收藏
一直不太明白hibernate怎么能作到集群啊!
如果有很多Server集群运行一个应用啊 1. Hibernate的session如果并发持久化同一个对象,不会有问题吗? 2. 如果有第三方(比如为了业务需要,需要手工执行一段sql)操作了已经存放在session里的持久对象,不会有问题吗? 希望能帮助我啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nil2000
2008-01-09
打赏
举报
回复
up
nil2000
2008-01-09
打赏
举报
回复
up
nil2000
2008-01-09
打赏
举报
回复
up
csrcom
2007-12-28
打赏
举报
回复
其实 sessoin 也是可以改造的,你可以存到远程的一台机器上面。集群应用要拿session可以到 session server上面获取。相当于分布式cache。
当然如果你的集群负责均衡设备会根据session将一个会话始终保持连接在一台机器上面,那么就不会存在每个服务器上面持久化一个相同session的情况了。
cursor_wang
2007-12-28
打赏
举报
回复
还有要补充一下,你觉得要操作同一对象时会不会出错,这个你放心好了,Hibernate已经在事物性上面考虑过了.事物管理有原子性,一致性,隔离性和持久性.Hibernate把AutoCommit设置成false,所以要提交的时候要写Transaction tx=session.beginTransaction(),tx.commit().Hibernate支持两种锁机制,"悲观锁"和"乐观锁",它会对操作进行加锁的.就是数据加锁.从而不会发生脏读现象.
我还是建议你去看下介绍Hibernate的书,在Hibernate高级特性里有说明的.因为这里一下说的很清楚是不可能的.只能这样了,有什么问题再说吧.
cursor_wang
2007-12-28
打赏
举报
回复
请看下面这段代码:
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
它先创建一个私有的ThreadLocal,ThreadLocal是java中一种较为特殊的线程绑定机制.通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制.
ThreadLocal的独特地方,它会问每个线程维护一个私有的变量空间,实际上其原理是在JVM中维护一个Map,这个Map的key就是当前的线程对象,而value则是线程通过ThreadLocal.set方法保存的对象实例,当线程调用ThreadLocal.get方法时,ThreadLocal会根据当前线程对象的引用,取出Map中对应的对象返回.
lihaifeng0412
2007-12-28
打赏
举报
回复
up
hibernate
jar包程序文件
hibernate
-commons-annotations-4.0.1.Final.jar
hibernate
-core-4.1.12.Final.jar
hibernate
-ehcache-4.1.12.Final.jar
hibernate
-entitymanager-4.1.12.Final.jar
hibernate
-jpa-2.0-api-1.0.1.Final.jar ...
SpringMVC+
Hibernate
+Spring整合实例
AOP则允许在不修改原有代码的情况下,插入新的功能或行为,比如日志记录、事务管理等。Spring还提供了大量的其他功能,如声明式事务管理、数据源配置、任务调度等。 在"SpringMVC+
Hibernate
+Spring整合实例"中,...
hibernate
4.2-jar包.zip
《深入理解
Hibernate
4.2:从jar包剖析框架核心》
Hibernate
,作为Java领域中最受欢迎的对象关系映射(ORM)框架之一,极大地简化了数据库操作。本文将围绕"
hibernate
4.2-jar包.zip"进行深入探讨,解析其中的关键...
SpringMVC+Spring3+
Hibernate
4
SpringMVC+Spring3+
Hibernate
4开发环境搭建
SSH2框架搭建实例源码
SSH2框架,全称为Spring、Struts2和
Hibernate
2的集成框架,是Java Web开发中的一个常见组合。这个实例源码使用的是Spring 3.2、Struts2 2.3.4和
Hibernate
4.2这三个框架的较新版本,提供了一个基础的用户登录和用户...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章