kookmin-sw / capstone-2024-45

시간은행 v2
https://kookmin-sw.github.io/capstone-2024-45/
1 stars 1 forks source link

[Back][Exchange] hibernate doesn't create tables automatically #23

Closed ytjdud closed 4 months ago

ytjdud commented 4 months ago

Application.yml 에서 jpa:hibernate:ddl-auto: 설정한게 작동하지 않음.

ytjdud commented 4 months ago

multiple databases 를 사용하고 있기 때문에 즉, 각 DB 마다 Config 로 LocalContainerEntityManagerFactoryBean 를 생성하고 있기에
LocalContainerEntityManagerFactoryBean 에서 property(hbm2.ddl.auto) 를 build 해주어야함.

그리고 application.yml 에 작성한 hibernate:ddl-auto 는 지운다.

After

 @Bean
 public LocalContainerEntityManagerFactoryBean bankCoreEntityManager(
            EntityManagerFactoryBuilder builder
    ) {
        // 추가
        Map<String, Object> properties = new HashMap<>();
        properties.put("hibernate.hbm2ddl.auto", "update");

        return builder
                .dataSource(bankCoreDataSource())
                .packages("com.capstone2024.sw.kmu.exchangeservice.domain.bankcore")
                .persistenceUnit("bankcore")
                .properties(properties)
                .build();
    }

before

@Bean
    public LocalContainerEntityManagerFactoryBean bankCoreEntityManager() {
        LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactoryBean.setDataSource(bankCoreDataSource());
        entityManagerFactoryBean.setPackagesToScan("com.capstone2024.sw.kmu.exchangeservice.domain.bankcore");
        entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
        return entityManagerFactoryBean;
ytjdud commented 4 months ago

자세한 정리 : https://the0.tistory.com/49