两者不都是为了使编程方便吗?
解决方案 »
- 请教各路英雄struts2中同时使用http和https接口如何配置
- 求助:SSH 留言管理程序-无法进入到Action中执行方法
- hibernate+struts 删除一条记录时报错
- 在简历中如何交代自己的历史
- hibernate和proxool搭配使用的问题
- 用标签显示图片的问题
- 大虾们帮忙看看这个HIBERNATE配置文件错在那里?
- 使用POI读取Excel文件,然后写入数据库,在Excel的中文写入会乱码!!求解决方法!
- Hibernate: No data type for node: org.hibernate.hql.ast.AggregateNode
- 请问JBuilder X中该如何配置才能使用web service????
- 学习ssh 框架用什么项目好?
- sessionFactory.getCurrentSession()为什么出这样的异常?
那是不是有了HibernateTransactionManager就可以进行申明式事务管理了,而没有则就不行了?
它不像HibernateTemplate 只是提供一个模版,还提供了事务传播的管理等?
2.
HibernateTemplate是让你在模版中间填写自己的代码
HibernateTransactionManager是能通过AOP在你代码前后添加逻辑
是吧?
3.我觉得HibernateTemplate完全没什么用,没它不一样编程蛮方便吗?
public void save(User user) {
Session s = sessionFactory.getCurrentSession();
s.save(user);
}
请问有了HibernateTemplate后它有什么方便是之前没有的呢?
管理事务嵌套,开启,关闭,资源线程同步,提交,回滚
HibernateTemplate是可以感知到线程内的事务和资源(存放在RESOURCESYCHRONIZEDMANAGER貌似叫这个,由AbstractPlatformTransactionManager)
“
Session s = sessionFactory.getCurrentSession();
”
我在SPRING的论坛上也问了类似的问题。。专业人士的意思大概是sessionFactory.getCurrentSession()无法感知到SPRING开启的事务和资源(SESSION)。。
下面是API的描述:
Note that HibernateTemplate will perform its own Session management, not participating in a custom Hibernate CurrentSessionContext unless you explicitly switch "allowCreate" to "false".
下面这句话的意思也是。。类似。对于这个我也有一些不解的地方,不过暂时我一直还是用这个TEMPLATE的。。
晚上回家实验一下~
请问这段英文什么意思:Note that HibernateTemplate will perform its own Session management, not participating in a custom Hibernate CurrentSessionContext unless you explicitly switch "allowCreate" to "false".
还有,“HibernateTemplate是可以感知到线程内的事务和资源”这句话怎么说?
是说这样吗:
1.如果事务管理器已经得到一个session了,hibernateTemplate就直接用这个session,没有则打开新的?
2.如果事务管理器已经session.beginTransaction()了,hibernateTemplate就不再次打开事务了?
3.如果事务管理器已经对事务有session.getTransaction().commit()了,hibernateTemplate就不再次提交了?
4.如果事务管理器已经在最后session.close()了,hibernateTemplate就不再关闭了?
5.对于1,2两个的感知好处理,但对于3,4呢,怎么感知?它怎么知道这个事务管理器有没有帮它做提交事务及关闭session的操作呢?那唯独只能是事务管理器告诉它喽。
还麻烦你看个问题:
http://topic.csdn.net/u/20110701/18/7eef2a03-ae45-489a-a100-394b6e6be008.html
但是下面的HibernateTransactionManager 还真没用过