我用hibernate得到以下异常:
10:18:14,795 INFO [SchemaValidator] Running schema validator
10:18:14,795 INFO [SchemaValidator] fetching database metadata
10:18:16,958 INFO [DatabaseMetadata] table not found: DUMMY_TABLE
10:18:16,963 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=bkoMdw-ear.ear/bkoMdw-ejb.jar#bkoMdw state=Create
javax.persistence.PersistenceException: [PersistenceUnit: bkoMdw] Unable to build EntityManagerFactory
(...)
Caused by: org.hibernate.HibernateException: Missing table: DUMMY_TABLE
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1127)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:359)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
Run Code Online (Sandbox Code Playgroud)
问题是表存在并且数据源文件已正确配置.
我错过了什么?有任何建议解决这个问题吗?
提前致谢!
问题是您认为该表存在并且数据源已正确配置,而Hibernate 知道这不正确.
增加日志级别并使用它-Dhibernate.show_sql=true来启用SQL语句的日志记录.这应该有助于跟踪这个.
[编辑]还要确保在@Table注释之前或之后没有空格.如果你有这个注释:
@Table(name = "myTable ") // Note the space after the name!!
Run Code Online (Sandbox Code Playgroud)
然后Hibernate将使用带引号的名称来创建表(因此您将拥有一个带有SQL名称的表'MYTABLE ')但在运行查询时它并不总是引用该名称.
小智 6
我在映射中使用的视图遇到了同样的问题.在我禁用了Hibernate的验证后,它可以正常工作.似乎验证有视图问题.
| 归档时间: |
|
| 查看次数: |
31839 次 |
| 最近记录: |