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

grails中的withTransaction和withSession有什么区别?

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

grails中的withTransaction和withSession有什么区别?

withTransaction
有点骇人听闻,因为它允许您在任何地方进行事务处理工作,但是最好将您的疑虑分开并在事务处理服务中进行工作。默认情况下,服务是事务性的,除非您添加了该服务,
statictransactional =false
并且可以使用
@Transactional
注释在类和/或方法级别对其进行微调。您只需将代码放入服务方法中而不使用
withTransaction
或就可以了
withSession

withSession
是访问当前Hibernate
Session
(通常由OpenSessionInView拦截器注册的一种)的一种便捷方法。如果您想清除会话或执行GORM未公开的其他工作,则可以通过这种方式访问​​它,而无需访问
sessionFactory
Spring使用的或线程本地持有人。

withTransaction
在事务服务方法之外,一种有效的用法是在
Session
控制器请求之外(即,当没有自动创建时
Session
)绑定Hibernate
withTransaction
将启动一个事务并创建一个
Session
需要的事务,并在关闭期间保持打开状态。因此,您可以使用它来避免延迟加载异常。对于那些仅从数据库中读取而无需事务性写入的情况,我们需要另一种方法来实现此目的而无需事务处理开销。但是目前,这种方法行之有效。但是,如果您执行数据库写操作,请将代码移至服务方法。



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

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

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