Могу ли я избежать использования DDL на jpa с использованием собственных запросов? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь сделать любой собственный запрос DDL jpa для исключения.

У меня есть следующий @Bean для entityManager:

@Bean
@Primary
public LocalContainerEntityManagerFactoryBean ownDbEntityManager() {
    LocalContainerEntityManagerFactoryBean em
            = new LocalContainerEntityManagerFactoryBean();
    em.setDataSource(ownDbDataSource());
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    em.setJpaVendorAdapter(vendorAdapter);
    HashMap<String, Object> properties = new HashMap<>();
    properties.put(... a lot of properties...);
    properties.put("generate-ddl", false); // Important one
    em.setJpaPropertyMap(properties);
    return em;
}

, и я импортирую этот Бин через @ PersistenceContext

@PersistenceContext
private EntityManager entityManager;

@Transactional
public void exec() throws Exception {
  entityManager.createNativeQuery("CREATE TABLE ... whatever"); // I want this to throw any kind of exception.
}

Я не уверен, правильно ли я понял свойство generate-ddl. Я так понимаю, это не должно позволять выполнять какие-либо операции DDL? Я что-то пропустил?

Сейчас он просто создает таблицу.

...