hibernate.hbm2ddl.auto не создает таблицу
Пишу свое первое CRUD приложение на голом спринге без бута. Столкнулся с тем, что не создаются таблицы через entity. Сконфигурировал вроде все верно. Единственные решения, которые мне попались - использовать spring.jpa.hibernate.ddl-auto. Но на данный момент мне это не нужно
db.properties
jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:8080/dbName
jdbc.username=user
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=create
EntityManagerConfig
@Configuration
@EnableTransactionManagement
@PropertySource(value = "classpath:db.properties")
@ComponentScan(basePackages = "userEditor")
public class EntityManagerConfig {
private Environment env;
@Autowired
public void setEnv(Environment env) {
this.env = env;
}
private Properties hibernateProps() {
Properties properties = new Properties();
properties.put("hibernate.dialect", env.getRequiredProperty("hibernate.dialect"));
properties.put("hibernate.show_sql", env.getRequiredProperty("hibernate.show_sql"));
properties.put("hibernate.hbm2ddl.auto", env.getRequiredProperty("hibernate.hbm2ddl.auto"));
return properties;
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getRequiredProperty("jdbc.driverClassName"));
dataSource.setUrl(env.getRequiredProperty("jdbc.url"));
dataSource.setUsername(env.getRequiredProperty("jdbc.username"));
dataSource.setPassword(env.getRequiredProperty("jdbc.password"));
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(dataSource());
entityManagerFactory.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
entityManagerFactory.setJpaDialect(new HibernateJpaDialect());
entityManagerFactory.setPackagesToScan("userEditor.model");
entityManagerFactory.setJpaProperties(hibernateProps());
return entityManagerFactory;
}
@Bean
public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
@Bean
JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
jpaTransactionManager.setEntityManagerFactory(entityManagerFactory);
return jpaTransactionManager;
}
}
Entity
@Entity
@Table(name = "userinfo", schema = "public")
public class User implements UserDetails {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "name")
private String name;
@Column(name = "email", unique = true)
private String email;
@Column(name = "password")
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private Set<Role> role;
public User() {
}
+ констуркторы, сеттеры, геттеры