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

标签 java spring jpa spring-boot sqlcommand

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

顺便说一句,我现在使用 HSQLDB...

最佳答案

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

更多 here

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

关于java - 如何在运行时在 Spring Boot 上运行 CUSTOM DDL DML ...,而不强制 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300136/

相关文章:

java - JTable 单元格中的 CSS 样式

spring - 方法不允许 405,在 grails 从 2.5.2 升级到 3.3.11 后点击 POST 请求时

java - 使用 LocalContainerEntityManagerFactoryBean 创建 session ?

java - 将 JPA 或 Hibernate 投影查询映射到 DTO(数据传输对象)

java - 为什么@Autowired 按类连接?

java - jdbc 语句的 Hibernate 模拟.setBinaryStream

java - 在 JPA 中, native 查询是否发生回滚?

java - 如何让我的子项目从多模块 Maven 项目中的 super 项目继承依赖版本?

java - 进程池的应用程序级负载平衡器

java .jar文件转换为.exe文件