首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA @Transaction

JPA @Transaction
EN

Stack Overflow用户
提问于 2013-01-02 21:17:37
回答 1查看 1.1K关注 0票数 2

在我看来,使用Spring JPA启动/停止事务的常见方法是用@ transaction注释公共函数

我不能确定的是,是否有可能注释一个类,使其范围更广一些。

假设您有一个调用3个函数的wish服务,对于前两个函数,您希望操作数据并将其保留在连接到会话的内存中,但在第三个调用中,您希望存储更改后的实体。这方面的最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-02 22:51:56

您正在讨论的内容也称为会话管理。

请记住,必须尽可能短的事务。在多个请求-响应循环期间保持数据库事务是不可行的(出于技术原因:一个事务绑定到一个线程,通常两个请求由两个不同的线程处理)。

但是,JPA提供了Extended Persistence Context来帮助您实现会话管理。

扩展持久化上下文可以在事务边界之外用于只读操作;所有非只读操作都必须在事务内执行。基本上,扩展的持久化上下文可以联接一个事务。这就是在对话结束时提交扩展持久化上下文的方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14122776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档