HibernateTransactionManager与HibernateTemplater是什么关系,其中一个是否多余?
2015-10-16 10:48
1096 查看
HibernateTransactionManager与HibernateTemplater是什么关系,其中一个是否多余? [问题点数:40分,结帖人CS_DN_HU]
不显示删除回复 显示所有回复显示星级回复 显示得分回复
只显示楼主
收藏
CS_DN_HU CS_DN_HU 本版等级: 结帖率:91.67% | 楼主发表于: 2011-06-30 22:17:06 两者不都是为了使编程方便吗? 更多0分享到: 相关主题推荐: 相关推荐: MDCC:10月14日见 错过等一年! |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:10 |
to_tq29 绿素潭竹 本版等级: | #1 得分:10回复于: 2011-06-30 22:32:20 HibernateTemplate 与 HibernateTransactionManager 是不同的,HibernateTemplate 是一个模板,是为了与数据库提供方便用的,HibernateTransactionManager 是一个事务管理器,它们所实现的方法也是不同的 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
userguanguan livesguan 本版等级: | #2 得分:5回复于: 2011-06-30 23:32:38 简单的说,就是为编程方便.其实看看他们的源码,自己也可以搞一套,两者的功能当然不同了,就像楼上所说的.具体可以去查查相关的文档. |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
CS_DN_HU CS_DN_HU 本版等级: | #3 得分:0回复于: 2011-07-01 08:12:09 1. 那是不是有了HibernateTransactionManager就可以进行申明式事务管理了,而没有则就不行了? 它不像HibernateTemplate 只是提供一个模版,还提供了事务传播的管理等? 2. HibernateTemplate是让你在模版中间填写自己的代码 HibernateTransactionManager是能通过AOP在你代码前后添加逻辑 是吧? 3.我觉得HibernateTemplate完全没什么用,没它不一样编程蛮方便吗? public void save(User user) { Session s = sessionFactory.getCurrentSession(); s.save(user); } 请问有了HibernateTemplate后它有什么方便是之前没有的呢? |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
scare111 scare111 本版等级: | #4 得分:22回复于: 2011-07-01 15:28:43 HibernateTransactionManager 管理事务嵌套,开启,关闭,资源线程同步,提交,回滚 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的。。 晚上回家实验一下~ |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
scare111 scare111 本版等级: | #5 得分:1回复于: 2011-07-01 15:40:05 TransactionSynchronizationManager,这个 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
CS_DN_HU CS_DN_HU 本版等级: | #6 得分:0回复于: 2011-07-01 18:36:58 引用 5 楼 scare111 的回复: TransactionSynchronizationManager,这个 非常感谢你的回答哈。 请问这段英文什么意思: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的操作呢?那唯独只能是事务管理器告诉它喽。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
CS_DN_HU CS_DN_HU 本版等级: | #7 得分:0回复于: 2011-07-01 18:38:17 引用 5 楼 scare111 的回复: TransactionSynchronizationManager,这个 呵呵“TransactionSynchronizationManager,这个”,这个怎么了? 还麻烦你看个问题: http://topic.csdn.net/u/20110701/18/7eef2a03-ae45-489a-a100-394b6e6be008.html |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
hepeng154833488 hepeng_8 本版等级: | #8 得分:1回复于: 2011-07-02 00:10:14 引用 1 楼 to_tq29 的回复: HibernateTemplate 与 HibernateTransactionManager 是不同的,HibernateTemplate 是一个模板,是为了与数据库提供方便用的,HibernateTransactionManager 是一个事务管理器,它们所实现的方法也是不同的 就是这样的 但是下面的HibernateTransactionManager 还真没用过 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
CS_DN_HU CS_DN_HU 本版等级: | #9 得分:0回复于: 2011-07-02 08:19:17 引用 8 楼 hepeng154833488 的回复: 所谓模版就是它给我们在前面后面加了,得到session,打开事务,提交事务,关闭session,try/catch回滚啊。但这些事务管理器不是已经做过了吗?这样不会有重复? |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
相关文章推荐
- 黑马程序员--java基础日记--基础语法知识
- 从0开始学Java——@override的作用
- 打电话主要代码(意图用法)
- 正则表达式详细介绍(下)
- 单网卡安装neutron
- 查看计算机的端口号是否被占用
- 菜单(menu)简介
- 常见海量数据处理面试题总结
- sql语句练习50题
- HttpContext.Current.Cache 过期时间
- JavaScript 跨域(CORS)
- Cg shader with single texture
- 如何快速给二维数组传值
- saltstack UI界面安装
- android修改浏览器默认主页
- java基础学习笔记
- iOS后端取值之种种
- 源码推荐(10.09):UITableViewCell自适应大小,3D Touch 简单demo
- C#List的排序和简单去重总结
- [CareerCup] 11.4 Sort the File 文件排序