Spring JPA Hibernate Автоматическое удаление таблицы с помощью create-drop - PullRequest
0 голосов
/ 13 сентября 2018

Я настраивал Критерии API в DBConfiguration файл, и у меня есть одна таблица с именем audit_log, где я регистрирую пользователя, который регистрирует дату, время, статус и имя пользователя,

Вот мои настройки файла DBConfiguration

@Configuration
@ComponentScan
@EntityScan("com.package.scan")
@EnableJpaRepositories("com.package.scan")
/*@PropertySource("classpath:db-config.properties")*/
public class DBConfiguration {

    public DBConfiguration() {
        logger = LogManager.getLogger(DBConfiguration.class.getName());
    }



    @Bean
        public JdbcTemplate jdbcTemplate(DataSource dataSource)
        {
            return new JdbcTemplate(dataSource);
        }

    @Bean
    public DataSource dataSource() {
        logger.info("dataSource() invoked");

        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.postgresql.Driver");
        dataSource.setUrl("jdbc:postgresql://localhost:5432/x2c");
        dataSource.setUsername("postgres");
        //dataSource.setPassword("P@ssw0rd");
        dataSource.setPassword("home"); 
        logger.info("dataSource = " + dataSource); 

        return dataSource;
    }


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSource());
        em.setPackagesToScan(new String[] { "com.mphasis.x2c.services.admin" });

        final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        // vendorAdapter.set
        em.setJpaVendorAdapter(vendorAdapter);
        em.setJpaProperties(additionalProperties());
        return em;
    }

     @Bean
        public PlatformTransactionManager transactionManager() {
            final JpaTransactionManager transactionManager = new JpaTransactionManager();
            transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());

            return transactionManager;
        }

        @Bean
        public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
            return new PersistenceExceptionTranslationPostProcessor();
        }

    Properties additionalProperties() {
           Properties properties = new Properties();
           properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
           properties.setProperty(
             "hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");

           return properties;
       }

}

Теперь, когда я использую create-drop, он удаляет мою таблицу Audit_log, которую я понятия не имею, почему и как это происходит, и для предотвращенияэто как разрешить.Пожалуйста, просветите меня по этому поводу.

Также, если есть какая-то другая вещь, которую мы можем использовать, например "update" .Но самое главное, почему он удаляет только мою таблицу audit_log.

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