当我使用ddl-auto'update'或'validate'运行应用程序时,Hibernate卡住了
我有一个本地Oracle数据库,其用户(TEST)在端口1521上运行。
在Spring应用程序上,我的应用程序yml配置文件中有此文件:
spring:
jpa:
show-sql: true
devtools:
add-properties: true
datasource:
jdbcUrl: 'jdbc:oracle:thin:@localhost:1521:test'
username: 'TEST'
password: 'Testing123'
driverClassName: 'oracle.jdbc.OracleDriver'
hibernate:
ddl-auto: "update"
dialect: 'org.hibernate.dialect.Oracle10gDialect'
当我运行应用程序时,它卡在了以下几行:
2019-07-19 13:30:39.043 INFO 74584 [ restartedMain] o.h.Version : HHH000412: Hibernate Core {5.3.10.Final}
2019-07-19 13:30:39.045 INFO 74584 [ restartedMain] o.h.c.Environment : HHH000206: hibernate.properties not found
2019-07-19 13:30:39.235 INFO 74584 [ restartedMain] o.h.a.c.r.j.JavaReflectionManager : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-07-19 13:30:39.475 INFO 74584 [ restartedMain] c.z.h.HikariDataSource : Test-H2DBPool - Starting...
2019-07-19 13:30:40.750 INFO 74584 [ restartedMain] c.z.h.HikariDataSource : Test-H2DBPool - Start completed.
2019-07-19 13:30:40.769 INFO 74584 [ restartedMain] o.h.d.Dialect : HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
如果我将休眠的ddl-auto更改为“ create-drop”,则它可以完美工作并且不会卡住。
我尝试调试该应用程序,并尝试获取一些日志,但是没有任何显示,我不知道该怎么办。通过“ create-drop”,我可以毫无问题地获取SQL日志。
编辑:
在等待应用程序运行40分钟之后,它已经执行并且运行良好。
如果在运行应用程序时将用户SYS用作SYSDBA,则Hibernate会在40秒或更短时间内加载。为什么要与另一个用户一起加载这么多时间?