java – 使用H2 JPA的Spring启动和JUnit导致找不到’pg_class’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用H2 JPA的Spring启动和JUnit导致找不到’pg_class’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1515字,纯文字阅读大概需要3分钟。
内容图文
我目前有一个spring boot应用程序,它包含2个配置文件:application.yaml和application-test.yaml.正确加载应用程序测试配置文件,该文件中的任何设置都按预期工作.
但是我遇到一个问题,特别是spring.jpa.hibernate.ddl-auto =’update’.当在application.yaml文件中定义此设置时,它会导致我的JPA单元测试失败,并且“找不到”表“PG_CLASS”.
我尝试在应用程序测试配置文件中使用不同的值覆盖此设置无济于事.
我的完整配置文件如下:
application.yaml
#Configure Postgres backend datasource
spring.datasource.driverClassName: org.postgresql.Driver
spring.datasource.url: jdbc:postgresql://ec2-54-75-233-146.eu-west-1.compute.amazonaws.com:5432/xxxx?user=xxxx&password=xxxxx&sslmode=require
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults: false
spring.jpa.database-platform: org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto: update
应用test.yaml
spring.datasource.usernam: sa
spring.datasource.url: jdbc:h2:mem:tests;DB_CLOSE_DELAY=-1;MODE=PostgreSQL;DB_CLOSE_ON_EXIT=FALSE;
spring.datasource.driverClassName: org.h2.Driver
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_default: false
spring.jpa.database-platform: org.hibernate.dialect.H2
取消注释application.yaml文件中的“spring.jpa.hibernate.ddl-auto:update”设置可以解决问题.但我想保持这一点.有任何想法吗?
解决方法:
上面的错误似乎是由Hibernate使用错误的方言(PostgreSQL而不是H2)引起的.
也许尝试在application-test.yaml中添加以下内容:
spring.datasource.driverClassName: org.h2.Driver
spring.jpa.properties.hibernate.dialect: org.hibernate.dialect.H2Dialect
内容总结
以上是互联网集市为您收集整理的java – 使用H2 JPA的Spring启动和JUnit导致找不到’pg_class’全部内容,希望文章能够帮你解决java – 使用H2 JPA的Spring启动和JUnit导致找不到’pg_class’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。