Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate在应用程序运行时需要花费大量的时间来加载_Java_Spring_Oracle_Hibernate - Fatal编程技术网

Java Hibernate在应用程序运行时需要花费大量的时间来加载

Java Hibernate在应用程序运行时需要花费大量的时间来加载,java,spring,oracle,hibernate,Java,Spring,Oracle,Hibernate,当我使用ddl自动“更新”或“验证”运行应用程序时,Hibernate被卡住了 我有一个本地Oracle数据库,用户(测试)在端口1521上运行 在Spring应用程序上,我的应用程序yml配置文件中有以下内容: spring: jpa: show-sql: true devtools: add-properties: true datasource: jdbcUrl: 'jdbc:oracle:thin:@localhost:1521:test' u

当我使用ddl自动“更新”或“验证”运行应用程序时,Hibernate被卡住了

我有一个本地Oracle数据库,用户(测试)在端口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
如果我将hibernate ddl auto更改为“create drop”,它工作得很好,而且不会卡住

我试着调试应用程序,我试着获取一些日志,但是什么都没有显示,我不知道我能做些什么。使用“createdrop”,我可以毫无问题地获取SQL日志

编辑:

在应用程序运行的情况下等待40分钟后,它已被执行并运行良好


如果在运行应用程序时将用户SYS用作SYSDBA,Hibernate将在40秒左右加载。为什么对另一个用户加载要花这么多时间?

尝试禁用二级缓存。在应用程序属性中设置-hibernate.cache.use\u second\u level\u cache=false。关于如何启用禁用二级缓存的更多详细信息,请参阅本文-我已经禁用了二级缓存,但是加载它仍然需要很多时间。当用户SYS作为SYSDBA时,加载应用程序需要68秒。对于另一个用户,这又花了很多时间。您使用的是什么版本的OraDB和ojdbc jar?如果使用12.xDB,尝试使用最新的方言和最新的ojdbc。我使用的是19.c。我试过使用org.hibernate.dialent.oracle10galent和org.hibernate.dialent.Oracle12cDialect,但两者的情况都是一样的。我使用19c时遇到了同样的问题,我想这与用户设置有关(至少在我的情况下)。我使用了一个预定义的用户(匿名),重新启动了我的应用程序,它工作了。