加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 通过Spring Hibernate只读数据

发布时间:2020-12-15 01:27:36 所属栏目:大数据 来源:网络整理
导读:注意到如果我想读取一些数据,如果我没有事务上下文,我将无法这样做,因为 org.hibernate.HibernateException: No Session found for current thread 对于读取数据,通常不需要事务. 因此,为了让Spring管理会话,即使对于只读操作,它也需要进行交易? 这不是开销

注意到如果我想读取一些数据,如果我没有事务上下文,我将无法这样做,因为

org.hibernate.HibernateException: No Session found for current thread

对于读取数据,通常不需要事务.

因此,为了让Spring管理会话,即使对于只读操作,它也需要进行交易…?

这不是开销吗?

PS.I不想手动打开和关闭会话…

非常感谢.

最佳答案
@Transactional告诉spring打开和关闭一个会话,除了指示它启动并提交一个事务.这不是很简单,但它是如何工作的.因此,如果您没有@Transactional,则不会打开任何会话.以下是您的选择:

>使用@Transactional(readOnly = true) – 目的是拥有只读事务.我推荐一个
>使用注入了@PersistenceContext的JPA EntityManager.它将为每次调用打开一个新的基础会话.不是那么好的选择.但是您应该考虑将EntityManager与readOnly = true事务一起使用
>使用其他方面/拦截器/过滤器来打开和关闭会话.这很难,你最终会对hibernate当前会话概念的spring实现感到困惑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读