簡體   English   中英

spring.jpa.hibernate.ddl-auto=更新在 Z2A2D5925E6ED9AB134D636 中不起作用

[英]spring.jpa.hibernate.ddl-auto=update not working in spring boot

我正在集成 spring 引導 + jpa + oracle。 I was successful in creating and drop the database with spring.jpa.hibernate.ddl-auto=create-drop , but when I change the property to spring.jpa.hibernate.ddl-auto=update , spring boot hangs up and the application沒有啟動。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)

2021-01-03 00:54:49.024  INFO 40612 --- [           main] com.walmart.DemoApplication     : Starting DemoApplication on m-c02dj138ml85 with PID 40612 (/Users/b0j02tw/Documents/demo/target/classes started by b0j02tw in /Users/b0j02tw/Documents/demo)
2021-01-03 00:54:49.026  INFO 40612 --- [           main] com.walmart.DemoApplication     : No active profile set, falling back to default profiles: default
2021-01-03 00:54:49.325  INFO 40612 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFERRED mode.
2021-01-03 00:54:49.367  INFO 40612 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 35ms. Found 1 JPA repository interfaces.
2021-01-03 00:54:49.656  INFO 40612 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-01-03 00:54:49.684  INFO 40612 --- [         task-1] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2021-01-03 00:54:49.719  INFO 40612 --- [         task-1] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.17.Final
2021-01-03 00:54:49.733  INFO 40612 --- [           main] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories…
2021-01-03 00:54:49.823  INFO 40612 --- [         task-1] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2021-01-03 00:54:49.891  INFO 40612 --- [         task-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-01-03 00:54:53.118  INFO 40612 --- [         task-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2021-01-03 00:54:53.148  INFO 40612 --- [         task-1] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect

application.properties

#==== Looging properties ======#
#debug=true
#==== Looging root levels - TRACE, DEBUG, INFO, WARN, ERROR, OFF ======#
logging.level.root=INFO


spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
##===== START - OracleDB connection settings ======#
spring.datasource.url=jdbc:oracle:thin:@//****
spring.datasource.username=***
spring.datasource.password=******
spring.jpa.hibernate.ddl-auto=update
##===== END - OracleDB connection settings ======#
#

##====== START - JPA settings ======

##===== END - OracleDB connection settins ======#
#

#SQL FOR DEBUGGING
spring.jpa.show-sql=true

這可能是一條評論,但它是一種很適合評論的工具,所以我將其發布為答案。 以下是一些可以為您指明正確方向的想法:

理念一

當您使用update作為此屬性值時-實際上會發生很多事情,而不僅僅是drop-create 事實上,Java 嘗試讀取有關您的架構的大量“元數據”,並根據 JPA/Hibernate 中定義的映射調整表。

有關更多詳細信息,請確保您正在閱讀此 SO 線程 順便說一句,在閱讀詳細解釋了當您將此屬性設置為update時會發生什么的答案后 - 也許您會得出結論,您並不真的需要它;)

長話短說,您的應用程序可能(這只是一個猜測)確實在后台“做”某事,一些耗時的操作可能需要相當長的時間。 因此,嘗試進行線程轉儲並檢查您是否看到任何“正在運行”的線程。

想法 2

另一個可能的原因是您沒有讀取元數據/任何其他操作的權限(這實際上取決於您設置 Oracle 數據庫的准確程度)。 緩解在這里很難描述——也許你應該看看 DBA 發生了什么,可能有很多原因會卡在 java 中,或者可能有鎖——誰知道呢。

想法 3

您可能還想記錄 spring 啟動應用程序在啟動時運行的 SQL 命令。 可以在 hibernate / spring 等級別啟用對 oracle 驅動程序(在驅動程序級別)的跟蹤。所以再想想這個方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM