Spring boot在配置类中注入EntityManagerFactory

2023-12-04

我正在使用 Spring Boot,我想将 Spring 与 Hibernate 集成。我想制作一个会话工厂 bean 供进一步使用。但我无法自动装配 EntityManagerFactory,我无法仅在配置类中自动装配它,在其他类中它可以工作。你能帮忙吗?

配置类

package kz.training.springrest.configuration;

@Configuration
@EnableTransactionManagement
public class DatabaseConfiguration {

    @Autowired
    private EntityManagerFactory entityManagerFactory;

    @Bean
    public SessionFactory getSessionFactory() {
        if (entityManagerFactory.unwrap(SessionFactory.class) == null) {
            throw new NullPointerException("factory is not a hibernate factory");
        }
        return entityManagerFactory.unwrap(SessionFactory.class);
    }
}

依赖关系

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.2</version>
        </dependency
    </dependencies>

当你说

但我无法自动装配 EntityManagerFactory

它是否无法编译或在运行时抛出异常?如果是后者,堆栈跟踪会说什么?

一种可能的解决方案/解决方法可能是使用 em 注入配置而不是 em 工厂@PersistenceContext注解:

@Configuration
@EnableTransactionManagement
public class DatabaseConfiguration {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public SessionFactory getSessionFactory() {
        // no need to check for null here because if the unwrap fails, it will do
        // so by throwing a PersistenceException rather than returning null.
        return entityManager.unwrap( Session.class ).getFactory();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring boot在配置类中注入EntityManagerFactory 的相关文章

  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 使用 $.support.cors = true; 是否安全?在 jQuery 中?

    我试图使用 jQuery 的 ajax 方法访问不同域上的 Web 服务 经过一些研究后 看起来它不允许这样做 这是为了防止跨站点脚本而设计的 我遇到了一个解决办法 其中包括这一行 support cors true 在我的 javascr
  • 基于位置的搜索结果查询速度慢

    我有一个查询 用于查找按位置排序的结果 结果还必须考虑增值税 因此这也在查询中 遗憾的是 在未缓存的情况下 查询可能需要 4 秒以上的时间才能运行 任何人都可以发现任何明显的问题或建议我可以做些什么来改进它吗 只是为了澄清查询中发生的情况
  • 在异步方法中返回和等待任务之间的区别[重复]

    这个问题在这里已经有答案了 下面的方法有什么区别吗 其中一个比另一个更可取吗 public static async Task SendAsync1 string to string subject string htmlBody awai
  • Sails 1.0 模型没有主键

    我尝试使用新版本 1 0 并重构我的项目 我有一个问题 但我现在不知道如何解决她 我的 BD 上的某些表没有主键 当我迁移到 sails 1 0 时 出现此错误 模型中friends 主键设置为id 但没有这样的 在模型上找到属性 您必须定
  • 如何将一种热编码的结果加入到数据帧中?

    我想在人口普查数据集中执行 one hot 编码 https archive ics uci edu ml datasets census venue 我想要执行的列位于国家 地区列中 因此我做了以下操作 import pandas as
  • 我怎样才能让 ruby​​-debug-ide 工作?

    我无法让我的 ruby debug ide 正常工作 我有一个基本的 Rails 应用程序 我想在 RubyMine 中进行调试 在启动 RubyMine 之前 我需要在我的 vagrant VM 中启用 rdebug ide 当我导航到我
  • 需要一种好方法让用户选择“收件人”来发送电子邮件

    我有一个网站 用户可以从中发送电子邮件 我有一种模仿基本形式 To
  • 客户端从哪里获取尚未添加到注册表的远程类的定义?

    我已经成功地创建了一个 RMI 应用程序 该应用程序非常成功地完成了我需要它完成的任务 但是我在了解客户端获取远程对象定义的位置时遇到了一些麻烦 例如 我有一个向 rmiregistry 注册自身的服务器 允许客户端调用其上的方法 Unic
  • 到达字符串中的特定单词

    嗨 我有一个像这样的字符串 word1 to word2 tab word3 tab word4 tab word5 tab word6 我需要从字符串中提取第三个单词 我想逐个字符地阅读并在阅读第二个选项卡后获取单词 但我想这效率很低 您
  • 浮动元素在包含块之外?

    我是 HTML CSS 的初学者 只是一些关于浮动元素的问题 下面是代码 section border 1px solid blue div margin 5px width 200px height 50px left float lef
  • Firebase 静态加密

    我真的很喜欢使用 Firebase 我想在新应用程序中使用它 但该应用程序会让用户上传敏感信息 我知道 Firebase 使用 https 但环顾四周 Firebase 似乎尚未提供静态加密 有没有办法解决这个问题 例如使用 Firebas
  • 转储 x86 CPU 的 TLB 缓冲区内容

    是否可以从 TLB 翻译后备缓冲区 这是 CPU 中的特殊缓存 获取翻译列表 从虚拟页到物理页 我的意思是现代 x86 或 x86 64 我想以编程方式完成此操作 而不是使用 JTAG 并将所有 TLB 条目移出 Linux内核没有这样的转
  • 收到警报 此评论尚未发布到 Facebook。发表评论

    我正在使用 Facebook 评论插件 当我尝试写评论时 它总是给我以下消息 该评论尚未发布到 Facebook 发表评论 我怎样才能删除它 您的链接网址已列入黑名单 Facebook 要求向用户证明其墙上的帖子
  • 如何使用SQL查询Microsoft Office Access中的元数据?像 SQL Server sys.tables、sys.columns 等

    我对 Access 完全陌生 但对 SQL Server 很熟悉 我想知道是否可以使用 SQL 查询 Microsoft Office Access 中的元数据 就像 SQL Server 的 sys tables sys columns
  • 从xsd获取html表单

    我有一个相当复杂的 xsd 文件 它描述了一些对象 这并不重要 但它是 DATEX II 标准 您知道是否有一种自动方法来创建 html 表单 就像 向导 一样指导用户创建 xsd 中描述的 xml 对象 这个问题的答案取决于目标用户群 您
  • QuartusII 14.1.0 Debian Linux 崩溃

    我无法在 64 位计算机上将 Quartus 14 1 0 与 Linux Debian wheezy 和 Jessie 一起使用 如果我在控制台上启动它 我会收到以下消息 user fpgaformation opt altera 14
  • 在同一个应用程序中从右到左和从左到右语言?

    据我了解 苹果不允许应用程序商店上有两个不同语言的相同应用程序 但是如果一种语言是从左到右 另一种语言是从右到左怎么办 这意味着不同的菜单 不同的项目定位 不同的用户界面等 甚至连 Segue 也不同 显然我不能为此使用常规本地化 有没有解
  • FindWindow 查找窗口Ex

    我编写了一个程序 用于在另一个程序中查找一个框并将焦点设置到它 完成此操作后 它将发送密钥并保存到此框中 I am using Findwindow and FindwindowEx to locate the box but I have
  • 无法获取存储锁定文件上的锁定

    我正在构建一个带有嵌入式 Neo4j 和 Spring Data 的项目 并且我遇到文件锁定问题 我收到异常 Caused by org neo4j kernel StoreLockException Unable to obtain lo
  • Spring boot在配置类中注入EntityManagerFactory

    我正在使用 Spring Boot 我想将 Spring 与 Hibernate 集成 我想制作一个会话工厂 bean 供进一步使用 但我无法自动装配 EntityManagerFactory 我无法仅在配置类中自动装配它 在其他类中它可以