2017-03-10 10 views
0

내가 가지고는 어떤 DDL 문을 실행하지 않습니다, 나는 확신 할 수 @EntitySpring JPA가 DDL을 수행하지 않는 방법 (Spring-Boot없이)?

에 의해 주석

@Configuration 
@EnableJpaRepositories("com.mycompany.databaseutilities.repo") 
@ImportResource("classpath:data_source.xml") 
public class DataConfig { 

    @Autowired 
    DataSource dataSource; 

    @Bean 
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() { 
     LocalContainerEntityManagerFactoryBean ans = 
     new LocalContainerEntityManagerFactoryBean(); 
     ans.setDataSource(dataSource); 
     ans.setJpaVendorAdapter(jpaVendorAdapter()); 
     ans.setPackagesToScan("com.mycompany.databaseutilities.model"); 
     return ans; 
    } 

    @Bean 
    public JpaVendorAdapter jpaVendorAdapter() { 
     HibernateJpaVendorAdapter ans = new HibernateJpaVendorAdapter(); 
     ans.setShowSql(false); 
     ans.setGenerateDdl(false); // is this sufficient? 
     ans.setDatabase(Database.MYSQL); 
     return ans; 
    } 

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

     return ans; 
    } 
} 

패키지 com.mycompany.databaseutilities.model이 클래스가 포함되어 다음과 같은 데이터베이스 설정,? 나는 기존 데이터베이스를 손상 시키려고하지 않는다.

+1

spring.jpa.hibernate.ddl 오토 = 갱신 –

+1

/스키마, 그리고 당신은 안전합니다. –

+0

@KumaresanPerumal 어디서 써야할까요? 구성 파일이 없습니다. – Dims

답변

0

봄 부팅 application.properties 또는 application.yaml 파일에 spring.jpa.hibernate.ddl-auto 속성을 지정할 수 있습니다.

또한 공급 속성하여 LocalContainerEntityManagerFactoryBean을 만들 때이 지정할 수 있습니다 응용 프로그램의 DB를 사용자에게 DDL 권한을 부여하지 마십시오

final Properties jpaProperties = new Properties(); 
jpaProperties.put(AvailableSettings.HBM2DDL_AUTO, "false"); 

entityManagerFactoryBean.setJpaProperties(jpaProperties);