我在我的项目中使用h2内存数据库,我想在启动之前运行几个sql脚本。这是我的配置:
hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.show_sql=true hibernate.hbm2ddl.auto=none hibernate.hbm2ddl.auto=none/db/script/insert-users.sql
但不起作用。如果我将hibernate.hbm2ddl.auto更改为create或create-drop,它将尝试基于带注释的实体创建表。但是我想通过创建表和插入用户来运行自己的sql脚本。Java配置:
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(restDataSource());
sessionFactory.setPackagesToScan(
new String[]{"org.training.ytaranau"});
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
Properties hibernateProperties() {
return new Properties() {
{
setProperty("hibernate.hbm2ddl.auto",
env.getProperty("hibernate.hbm2ddl.auto"));
setProperty("hibernate.dialect",
env.getProperty("hibernate.dialect"));
setProperty("hibernate.globally_quoted_identifiers",
"true");
setProperty("hibernate.hbm2ddl.import_files",
env.getProperty("hibernate.hbm2ddl.import_files"));
}
};
}我能做到吗?
发布于 2018-08-24 08:56:57
您可以在下面设置hibernate的属性,然后可以执行一些脚本。
javax.persistence.schema-generation.create-source
javax.persistence.sql-load-script-source
<property name="javax.persistence.schema-generation.drop-script-source" value="META-INF/drop-script.sql"/>
<property name="javax.persistence.schema-generation.create-script-source" value="META-INF/create-script.sql"/>https://stackoverflow.com/questions/47663247
复制相似问题