gpt4 book ai didi

java - 无法在 ApplicationListener 中注入(inject) Hibernate SessionFactory

转载 作者:行者123 更新时间:2023-11-30 07:36:40 24 4
gpt4 key购买 nike

我正在构建一个 SpringBoot 应用程序,并尝试以编程方式填充我的测试数据库。

我想出了这个:

@Profile("dev")
@Component
public class DatabaseFillerOnStartup implements ApplicationListener<ContextRefreshedEvent> {

@Resource
private SomeRepository someRepository;

@Resource //This doesn't work
private SessionFactory sessionFactory;

@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
...

我的一个实体有一个 Blob,我想在其中保存图像:

   private Blob createBlobWithSampleImage() {
InputStream imageStream = this.getClass().getClassLoader().getResourceAsStream("sample1.jpg");
LobCreator lobCreator = Hibernate.getLobCreator(sessionFactory.getCurrentSession());
try {
return lobCreator.createBlob(IOUtils.toByteArray(imageStream));
} catch (IOException e) {
throw new RuntimeException(e);
}
}

问题是我无法注入(inject) sessionFactory。

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException

有更好的方法来实现我想要的吗?

最佳答案

您没有显示您配置 session 工厂的位置。您在使用 spring-boot-starter-data-jpa或者您自己在 @Configuration 注解的类中或通过标准 xml bean 配置来连接 SessionFactory 吗?

编辑:根据该答案查看 this stackoverflow answer .

关于java - 无法在 ApplicationListener 中注入(inject) Hibernate SessionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35301279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com