[英]Hibernate config.Run sql script before init
我在项目中使用的是H2-in-memory数据库,我想在启动之前运行少量sql脚本。 这是我的配置:
hibernate.dialect = org.hibernate.dialect.H2Dialect hibernate.show_sql = true hibernate.hbm2ddl.auto = none hibernate.hbm2ddl.import_files =“ / db / scripts / schema.sql,/ db / scripts / 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"));
}
};
}
我能做到吗?
您可以在下面为休眠设置属性,然后可以执行一些脚本。
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"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.