SpringBoot2 множественная конфигурация источника данных - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь настроить несколько источников данных для приложения весенней загрузки 2, чтение из файла базы данных SQLite только для чтения и запись результатов в другую базу данных SQLite.

Я не могу найти правильные ключи свойств для нескольких источников данных. Я хотел бы, чтобы код генерировал базу данных для источника данных для чтения / записи, но я не могу найти правильный ключ свойства, чтобы использовать hibernate, чтобы сделать это для меня:

lsst.ajsdata.hibernate.hbm2ddl.auto=create

Не работает.

Может кто-нибудь помочь с настройкой этих источников данных, пожалуйста.

application.properties ...

# DB PROPERTIES #
lsst.kracken.jdbcUrl = jdbc:sqlite:file:./data/kraken_2026.db?mode=ro
lsst.kracken.hibernate.dialect=org.hibernate.dialect.SQLiteDialect
lsst.kracken.driver-class-name = org.sqlite.JDBC
lsst.kracken.maximum-pool-size=10
lsst.kracken.hibernate.ddl-auto=none
lsst.kracken.show-sql=false
lsst.kracken.hibernate.format_sql=false
lsst.kracken.generate-ddl=true

lsst.ajsdata.jdbcUrl = jdbc:sqlite:file:./data/ajs_kraken_2026.db?mode=rw
lsst.ajsdata.driver-class-name = org.sqlite.JDBC
lsst.ajsdata.maximum-pool-size=30
lsst.ajsdata.default-auto-commit=true

lsst.ajsdata.hibernate.open-in-view=false
lsst.ajsdata.hibernate.hbm2ddl.auto=create
lsst.ajsdata.hibernate.ddl-auto=create
lsst.ajsdata.hibernate.generate-ddl=true
lsst.ajsdata.hibernate.use-new-id-generator-mappings=true
lsst.ajsdata.hibernate.jpa.show-sql=true
lsst.ajsdata.hibernate.dialect=org.hibernate.dialect.SQLiteDialect
lsst.ajsdata.hibernate.format_sql=true
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLiteDialect
#spring.jpa.generate-ddl=false
##spring.jpa.hibernate.ddl-auto=none
#spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

С классами контекста постоянства, выглядящими так:

public class KrackenPersistenceContext {

    @Bean
    @Primary
    @ConfigurationProperties(prefix="lsst.kracken")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
}

И

public class AjsDataPersistenceContext {

  @Bean
  @ConfigurationProperties(prefix = "lsst.ajsdata")
  @Qualifier("ajsDatasorce")
  public DataSource ajsDatasorce() {
    DataSource ajsDatasource = DataSourceBuilder.create().build();
    return ajsDatasource;
  }
}

1 Ответ

0 голосов
/ 19 апреля 2019

Посмотрите на этот ответ @andy wilkinson.

spring.jpa.hibernate.ddl-auto = create перестал работать не потому, что у вас есть два источника данных, а потому, что ваше приложение создает свой собственный LocalContainerEntityManagerFactoryBeans. Это приводит к отключению автоматической настройки LocalContainerEntityManagerFactoryBean, поэтому теперь вам нужно настроить его самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...