HibernateeException

t30tvxxf  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(331)

如何将对象Map到物化视图并保持 <prop key="hibernate.hbm2ddl.auto">validate</prop> ?
启动webapp时,我在启动时遇到以下异常: Caused by: org.hibernate.HibernateException: Missing table: subjects_lp at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1302) at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:512) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1797) ... 据消息人士透露,hibernate似乎只要求databasemetadata#gettablemetadata中的“view”和“table”类型,而postgresql将其存储为“materialized view”(用普通jdbc检查)。
令人惊讶的是,我在谷歌上找不到关于这个错误的信息。有没有办法在启动时保持hibernate验证,或者有没有办法保持一个表/实体未验证?
hibernate版本:4.2.12.final
postgresql驱动程序:9.3-1101-jdbc41
实体没有任何特定的注解,只有 @javax.persistence.Entity @javax.persistence.Table(name = "table_name", schema = "schema")

uttx8gqw

uttx8gqw1#

对于那些来这里使用springbootstarter数据jpa和 ddl-auto: validate 在application.yml文件中,您需要添加 hibernate.hbm2dll.extra_physical_table_types: "MATERIALIZED VIEW" 您的财产:

spring:
  datasource:
    ~~~
  jpa:
    hibernate:
      ddl-auto: validate
    ~~~
    properties:
      hibernate:
        ~~~
        hbm2dll:
          extra_physical_table_types: "MATERIALIZED VIEW"

我提到这一点是因为我花了很多时间才把它放在正确的地方。

lkaoscv7

lkaoscv72#

这不是驱动程序的问题,而是休眠错误。
看到这个虫子了吗https://hibernate.atlassian.net/browse/hhh-9602

相关问题