栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

hibernate是在内部使用jdbc还是在内部使用JTA,或者它是可配置的?”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

hibernate是在内部使用jdbc还是在内部使用JTA,或者它是可配置的?”

Hibernate是在内部使用jdbc还是在内部使用JTA来执行持久化和获取操作?

JDBC和JTA不可互换。JDBC是
Java应用程序用于与数据库进行交互的标准API。JTA是用于跨一个或多个资源管理事务的标准API。对于您的问题,最接近的答案是“内部”,Hibernate使用JDBC与数据库进行交互。

像getCurrentSeessionSession()方法一样,获取与当前JTA事务关联的会话。

不完全是。SessionFactory.getCurrentSession()根据当前会话上下文获取会话。该策略的一种实现是JTA会话上下文,它实质上将会话与JTA事务相关联。JTA事务没有“拥有”
Hibernate会话,因为JTA对Hibernate一无所知,而且说Hibernate在内部使用JTA也不是很正确。它仅具有与JTA集成并使其管理事务的能力。

在这里,我想了解第// tx = session.beginTransaction();行的作用

它以您正在使用的任何事务处理机制开始事务,该机制由使用中的TransactionFactory控制。例如,对于JDBCTransactionFactory,它仅确保自动提交已关闭,以便在事务完成之前不会提交更改。

一旦我们提交了特定的交易,从同一会话创建的所有交易都将被提交一次。

通常情况下,会话仅与一个事务相关联。多次调用Session.beginTransaction()只会返回相同的基础Transaction。

因此,我们试图通过// tx = session.beginTransaction()实现

就是这样:告诉正在管理交易的任何人,您将开始新的交易。这意味着直到commit()或rollback()为止发生的所有事情都应该具有数据库事务的普遍接受的语义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号