hibernate - 如何在不使用 JPA 的情况下保持在 SpringBoot/GraphQL 中打开的 Hibernate 事务?
问题描述
我正在使用 GraphQL 来重建我的 REST 应用程序。我遇到的问题之一是 GraphQLResolver 不重用 GraphQLQueryResolver 中使用的事务。
我知道使用 JPA 和 OpenEntityManagerInViewFilter 会有所帮助,但是现在使用 JPA/EntityManager 重写数千个 DAO 来替换 Hibernate Session 不是一种选择。
是否有替代方法可以使用“org.springframework.orm.hibernate5.LocalSessionFactoryBean”并仍然为 GraphQLResolver 保持事务打开?
@Component
@Transactional
public class CountryQuery implements GraphQLQueryResolver {
public List<Country> countries() {
...
}
}
@Component
@Transactional
public class CountryResolver implements GraphQLResolver<Country> {
public List<Locale> locales(Country country) {
...
}
}
解决方案
我发现 AsyncTransactionalExecutionStrategy 在这篇文章中有效
推荐阅读
- javascript - 如何关闭工作箱浏览器控制台消息?
- vue.js - 为什么使用 Vuetify 时参数返回“未定义”
- python-2.7 - Arduino和Python之间的慢速串行连接
- scala - 如何使用同一流中存在的键对流的元素进行分组?
- html - 需要 Excel VBA 来浏览网站和下载特定文件
- python - 在集群环境中启动和停止 weblogic 服务
- javascript - 在地图中显示 KML 文件
- javascript - 如何为我的 mocha 测试创建自定义挂钩?
- python - 如果我们有多个分类列多类怎么办?
- python - 如何在 Anaconda 中安装 docplex 包?