@PostConstruct 中没有会话休眠

2024-04-04

MyDao 类具有通过 Hibernate SessionFactory 执行整个持久性任务的方法,它工作得很好。

我在 MyService 中注入了 MyDao,如上所示,但是当在注入 MyDao 后调用 @PostConstruct init() 方法时(调试我可以看到 MyDao 注入得很好),会得到下一个 Hibernate 异常:

org.hibernate.HibernateException:没有找到当前线程的会话

我的服务实施。

@Service("myService")
@Transactional(readOnly = true)
public class MyServiceImpl implements MyService {

    @Autowired
    private MyDao myDao;
    private CacheList cacheList;

    @PostConstruct
    public void init() {

        this.cacheList = new CacheList();
        this.cacheList.reloadCache(this.myDao.getAllFromServer());
    }

    ...
}

解决办法

As @Yogi


我认为不允许进行任何交易@PostConstruct水平如此@Transactional在这里不会做太多除非mode被设定为aspectj in <tx:annotation-driven mode="aspectj" />.

As per this https://web.archive.org/web/20160217005855/http://forum.spring.io/forum/spring-projects/data/50069-no-transaction-in-transactional-service-called-from-postconstruct您可以使用的讨论TransactionTemplate http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/transaction/support/TransactionTemplate.html开始内部手动交易init()绑定session但如果您打算严格遵守声明式事务,则需要使用ApplicationListener http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/context/ApplicationListener.html注册事件和用户ContextRefreshedEvent http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/context/event/ContextRefreshedEvent.html发起交易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@PostConstruct 中没有会话休眠 的相关文章

随机推荐

  • 如何在 Sails.js 策略中使用错误处理程序回调?

    问完后这个问题 https stackoverflow com questions 22160043 how to use a callback array as the handler for a sails js route 我发现我可
  • lubuntu 的洞察调试器有其他选择吗?

    你能告诉我是否有其他选择洞察力 调试器或者如何使用调试器运行和调试 Jeff Duntemann 的 汇编语言分步第三版 中的汇编代码 其中输出 与书中示例中描述的输出相同吗 我在汇编计划学习方面完全是菜鸟 所以有人向我推荐了这本书 但是我
  • 使用 Vee-Validate 和 vue js 2 在提交时验证子输入组件

    我目前正在尝试创建一个包含多个 输入字段 组件的注册表单 这些组件都需要在按下 提交 后进行验证 目前 当其中的文本发生更改时 它们都会自行验证 但我发现很难对所有输入字段进行全局调用以验证所有输入字段 我想要实现的目标如下 http ve
  • .Net Mvc 3 触发器(提交按钮除外)非侵入式验证

    我想要什么 我想通过我选择的事件在我的视图中触发客户端验证 它可能是 onblur 也可能是另一个按钮 但不是提交按钮 相关链接 如何在不使用提交按钮的情况下触发验证 https stackoverflow com questions 57
  • 删除字符串中不需要的字符

    我想问如何从字符串中删除特殊字符 从废弃页面中提取 4 30am 我只是想获得时间 所以我尝试使用以下方法过滤它 str 4 30am new string preg replace A Za z0 9 str echo pre new s
  • 使用 pandas 读取带有 numpy 数组的 csv

    我有一个csv包含 3 列的文件emotion pixels Usage包含由 组成35000行例如0 70 23 45 178 455 Training I used pandas read csv阅读csv文件为pd read csv
  • XPath 元素包含 2 个子元素,每个子元素都与特定文本匹配

    我正在使用 Selenium 来定位页面上的某些元素 我有一张看起来像这样的桌子 table tbody tr td Text1 td td Text2 td tr tbody table Each 元素与此模式匹配 我想传入两个字符串 t
  • 尝试映射具有重复值的系列时出现 InvalidIndexError

    我正在尝试将医院名称映射到其英国邮政编码 我有这些医院 在英国称为 Trusts 的脊柱手术的 csv 该 csv 是 kate spine csv 我从中导入一列 信任 以简化操作 import pandas as pd spine pd
  • Pod 和部署有什么区别?

    我一直在创建豆荚type deployment但我看到一些文档使用type pod 进一步来说多容器 Pod 的文档 http kubernetes io docs user guide pods multi container apiVe
  • React router Link 不会导致组件在嵌套路由内更新

    这真让我抓狂 当我尝试在嵌套路由中使用 React Router 的 Link 时 链接会在浏览器中更新 但视图不会改变 然而 如果我刷新页面到链接 它就会出现 不知何故 该组件没有在应该更新的时候更新 或者至少这是目标 这是我的链接的样子
  • 如何在 Google OAuth 客户端中使用私有 IP 作为“授权 JavaScript 来源”?

    我使用 Google OAuth2 在我的网站中实现了 使用 google 登录 在 Google API 控制台中Authorized JavaScript origins我目前拥有的清单http localhost 3000 但现在我想
  • 无法连接到 gitlab CI 中 unix:///var/run/docker.sock 的 Docker 守护进程

    我查看了其他问题 但找不到自己的解决方案 我在 gitlab 中设置 CI 并使用 gitlab 的共享运行器 在构建阶段 我使用 docker 镜像作为基础镜像 但是当我使用docker命令它说 无法连接到位于 unix var run
  • iPhone 应用程序的唯一标识符

    对于将图像提交到服务器的 iPhone 应用程序 我需要以某种方式将来自特定手机的所有图像绑定在一起 每次提交时我都想发送一些唯一的电话号码 看着 UIDevice mainDevice uniqueIdentifier and NSUse
  • 为什么 Visual Studio 代码格式不能正常用于 Razor 标记?

    或者 我应该问 VS 代码格式化何时可以正确用于 Razor 标记 这种格式适用于大多数结构 但似乎对 if 块感到窒息 下面的代码是VS格式化的 修复这种情况很容易 只需多一个缩进 但我很好地接受了日常使用中的格式 并且喜欢在我的大部分代
  • 在 Chrome 和 Safari 中使用 onafterprint

    我知道直到最近onafterprint仅适用于 IE 最近 HTML5 已将其添加到其事件列表中 我只在 Firefox 中成功使用它 但无法让它在 Chrome 或 Safari 中运行 当它在正文中使用时 它似乎仅在 Firefox 中
  • 使用访问令牌重置环回密码

    我正在开发一个使用 Loopback 作为框架的项目 其中包括用户和身份验证 我添加了生成并通过电子邮件发送的密码重置路由 一切似乎都正常工作 最近 我发现密码重置似乎不起作用 这里重置密码的流程是 调用用户密码重置方法 通过重置事件发送电
  • 获取 xml body 的所有元素并添加到 struct

    我正在寻找一种方法来循环 XML Body 并将每个 xml 元素传递到结构中 我通过以下方式访问了 xml 主体
  • 随着时间的推移围绕枢轴点旋转游戏对象

    我使用以下代码相对于另一个枢轴点旋转一个点 Vector3 RotatePointAroundPivot Vector3 point Vector3 pivot Vector3 angles Vector3 dir point pivot
  • 尝试共享图像时 Facebook 不会出现在共享窗口上

    我在应用程序中创建了一个位图 并希望使用 Intent ACTION SEND 通过电子邮件应用程序或 Facebook 共享它 共享窗口打开 gmail 和 yahoomail 应用程序图标出现 但没有 facebook 或 g 我真的不
  • @PostConstruct 中没有会话休眠

    MyDao 类具有通过 Hibernate SessionFactory 执行整个持久性任务的方法 它工作得很好 我在 MyService 中注入了 MyDao 如上所示 但是当在注入 MyDao 后调用 PostConstruct ini