如何将对象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")
2条答案
按热度按时间uttx8gqw1#
对于那些来这里使用springbootstarter数据jpa和
ddl-auto: validate
在application.yml文件中,您需要添加hibernate.hbm2dll.extra_physical_table_types: "MATERIALIZED VIEW"
您的财产:我提到这一点是因为我花了很多时间才把它放在正确的地方。
lkaoscv72#
这不是驱动程序的问题,而是休眠错误。
看到这个虫子了吗https://hibernate.atlassian.net/browse/hhh-9602