如何运行CUSTOM DDL DML ...在运行时的Spring Boot上,不强制Hibernate

时间:2016-12-23 11:00:08

标签: java spring jpa spring-boot sqlcommand

如何访问数据库并运行自定义可执行文件或查询?经过一些搜索,我发现我可以使用sessionFactory,但我必须强制hibernate作为数据处理程序,这让我担心如果它在我复杂的应用程序部分中有一些不良影响或行为,取决于它将数据链接在一起的方式,或者它获取连接数据并处理它们的方式...所以我想使用spring默认值...如果它不喜欢hibernate,它可能意味着hibernate更慢。我想访问在线会话(以前我在C#上使用NHibernate,创建辅助会话可能会有问题),所以我想访问数据库的存在会话,除了我使用JpaRepository时,并在其上运行自定义命令。所以我不打扰其他会话,或锁定:|

BTW我现在正在使用HSQLDB ......

1 个答案:

答案 0 :(得分:1)

Spring JDBC具有DataSource初始化程序功能。 Spring Boot默认启用它并从标准位置schema.sqldata.sql(在类路径的根目录中)加载SQL。此外,Spring Boot将加载schema-${platform}.sqldata-${platform}.sql个文件(如果存在),其中platform是spring.datasource.platform的值,例如您可以选择将其设置为数据库的供应商名称(hsqldb,h2,oracle,mysql,postgresql等)。可以通过设置spring.datasource.schemaspring.datasource.data来更改脚本位置,而不是位置将在spring.datasource.initialize=false

处理

更多here

如果你把hibernate jar放在classpath中,那么Spring的自动配置将接管并认为你想要用户Hibernate。因此,请确保您没有在类路径中放置这些罐子。