hibernate - Spring Hibernate SessionFactory

标签 hibernate spring sessionfactory

如何使用 java 配置创建 SessionFactory?

@Bean
public SessionFactory sessionFactory(){
    AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
    sessionFactoryBean.setConfigLocation(new ClassPathResource("hibernate.cfg.xml"));
    return sessionFactoryBean.getObject();
}

由于某种原因,这不起作用......它总是返回空值。

最佳答案

改为返厂:

@Bean
public AbstractSessionFactoryBean sessionFactoryBean(){
    AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
    sessionFactoryBean.setConfigLocation(new ClassPathResource("hibernate.cfg.xml"));
    return sessionFactoryBean;
}

如果需要注入(inject)SessionFactory直接在代码中的某处,添加这个辅助方法:
public SessionFactory sessionFactory() {
    return sessionFactoryBean().getObject();
}

请注意,助手 sessionFactory()不是 注释为 @Bean - 这真的很重要。

关于hibernate - Spring Hibernate SessionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121461/

相关文章:

spring - 为什么我的 RestTemplate ClientHttpRequestInterceptor 没有被调用?

java - Spring LocalSessionFactoryBean 无法与 Annontaions 和 HBM 映射一起使用

java - 返回 Hibernate 4.3 的 SessionFactory Singleton 对象

java - Spring:spring 可以访问在 spring 管理的 bean 中私有(private)创建的对象吗?

java - Spring hibernate : Illegal attempt to associate a collection with two open sessions

java - spring crudrepository 保存特定的 id

java - 全局设置 hibernate 'default-cascade' 属性

java - 寻找一种从 Java 中的给定 SQL 查询创建动态 SQL 的方法

hibernate - 如何生成 RestController 类

spring - 忽略 Jackson OnDemand 中的嵌套属性