如何将对象映射到材料化视图并保留“<prop key="hibernate.hbm2ddl.auto">validate</prop>”?
当启动Web应用程序时,我会在启动时遇到这个异常:
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.(SessionFactoryImpl.java:512) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1797) ...
根据源代码,看起来 hibernate 在 DatabaseMetadata#getTableMetadata 中只请求类型为“VIEW”和“TABLE”,而 postgresql 存储为“MATERIALIZED VIEW”(使用纯 jdbc 进行检查)。
令人惊讶的是,我无法在 Google 上找到有关此错误的信息。是否有办法在启动时保持 hibernate 验证,也许有办法使一个表/实体不被验证?
Hibernate 版本:4.2.12.Final Postgresql 驱动程序:9.3-1101-jdbc41
实体没有任何特定的注释,只有
@javax.persistence.Entity @javax.persistence.Table(name = "table_name", schema = "schema")
当启动Web应用程序时,我会在启动时遇到这个异常:
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.(SessionFactoryImpl.java:512) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1797) ...
根据源代码,看起来 hibernate 在 DatabaseMetadata#getTableMetadata 中只请求类型为“VIEW”和“TABLE”,而 postgresql 存储为“MATERIALIZED VIEW”(使用纯 jdbc 进行检查)。
令人惊讶的是,我无法在 Google 上找到有关此错误的信息。是否有办法在启动时保持 hibernate 验证,也许有办法使一个表/实体不被验证?
Hibernate 版本:4.2.12.Final Postgresql 驱动程序:9.3-1101-jdbc41
实体没有任何特定的注释,只有
@javax.persistence.Entity @javax.persistence.Table(name = "table_name", schema = "schema")