【问题标题】:Creating separate data source for my session spring using JDBC and spring data jpa in spring boot在spring boot中使用JDBC和spring data jpa为我的会话spring创建单独的数据源
【发布时间】:2018-01-27 21:43:03
【问题描述】:

我是 spring-boot 的新手,我想使用 h2 数据库配置我的 spring 会话与 jdbc,但它不会在我的 h2 嵌入式数据库中创建数据库和表,它使用 PostgreSQL 在 PostgreSQL 中创建它我在我的应用程序属性文件中配置的数据源。如何让我的 Spring 应用程序仅使用我的嵌入式 h2 db 来存储会话,同时不与我的 JPA 的 PostgreSQL 数据源冲突

https://github.com/eshiett1995/SessionProject。如果有人可以帮助我进行会议,我会很高兴

【问题讨论】:

标签: postgresql spring-boot spring-data-jpa h2 spring-session


【解决方案1】:

查看https://github.com/nomanbplmp/CustomSessionStoreExample 以查看完整示例。

为了使会话存储与主数据库以外的其他数据库一起使用,需要提供自定义会话存储库并覆盖 spring 的内部,如下所示。

@Configuration
@EnableJdbcHttpSession
class SessionConfig { 
    @Bean
    public JdbcOperationsSessionRepository sessionRepository(){
      DataSource ds =   DataSourceBuilder.create().driverClassName("org.h2.Driver").username("sa").url("jdbc:h2:file:~/test").build();
     return   new SessionRepo(ds,new DataSourceTransactionManager(ds));

    }
}


class SessionRepo extends JdbcOperationsSessionRepository  {

    public SessionRepo(DataSource dataSource, PlatformTransactionManager transactionManager) {
        super(dataSource, transactionManager);

    }


}

【讨论】:

  • 它不起作用,使用@Primary,它只是为我在 h2db 中的实体创建一个表
  • 它没有按我的意愿工作。它根据我的需要在 h2 数据库中创建了会话表,但不是在 PostgreSQL 中创建我的实体,而是在 h2 中创建它们。
猜你喜欢
  • 2020-05-21
  • 2019-12-02
  • 2016-09-14
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 2016-06-22
  • 2017-11-29
相关资源
最近更新 更多