Java org.springframework.dao.InvalidDataAccessResourceUsageException:ORA-00942:表或视图不存在

Java org.springframework.dao.InvalidDataAccessResourceUsageException:ORA-00942:表或视图不存在,java,spring,hibernate,Java,Spring,Hibernate,我正在启动我的应用程序,并在启动时记录以下错误。奇怪的是我不知道哪张桌子丢了?是否有一种方法可以显示哪些表不存在 org.springframework.dao.InvalidDataAccessResourceUsageException: ORA-00942: table or view does not exist ; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: ORA-00942:

我正在启动我的应用程序,并在启动时记录以下错误。奇怪的是我不知道哪张桌子丢了?是否有一种方法可以显示哪些表不存在

org.springframework.dao.InvalidDataAccessResourceUsageException: ORA-00942: table or view does not exist
; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: ORA-00942: table or view does not exist

    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:635) ~[spring-orm-3.1.2.RELEASE.jar:3.1.2.RELEASE]
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:104) ~[spring-orm-3.1.2.RELEASE.jar:3.1.2.RELEASE]
    at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:516) ~[spring-orm-3.1.2.RELEASE.jar:3.1.2.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) ~[spring-tx-3.1.2.RELEASE.jar:3.1.2.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) ~[spring-tx-3.1.2.RELEASE.jar:3.1.2.RELEASE]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:394) ~[spring-tx-3.1.2.RELEASE.jar:3.1.2.RELEASE]
这意味着您的查询正在尝试使用不存在的表,或者正在使用没有正确访问权限的表

因此,当您启动应用程序时,会创建一些SpringBean并处理此类查询(您可以从堆栈跟踪中看到SpringTX管理器正在尝试提交当前事务,因此在某些地方打开了该事务)。您应该确保所有hibernate实体都有对应于您的模式的表。如果您不能保证这一点,也许您可以使用
update

hibernate将为您完成这项工作,并根据您的实体创建表和序列等

您还可以通过启用hibernate日志来检查正在发生的事情。您可以通过在persistence.xml中将属性“
show_sql
”设置为“
true
”,或者使用

回写

 <logger name="org.hibernate" level="DEBUG" /> 
log4j.logger.org.hibernate.SQL=DEBUG
这意味着您的查询正在尝试使用不存在的表,或者正在使用没有正确访问权限的表

因此,当您启动应用程序时,会创建一些SpringBean并处理此类查询(您可以从堆栈跟踪中看到SpringTX管理器正在尝试提交当前事务,因此在某些地方打开了该事务)。您应该确保所有hibernate实体都有对应于您的模式的表。如果您不能保证这一点,也许您可以使用
update

hibernate将为您完成这项工作,并根据您的实体创建表和序列等

您还可以通过启用hibernate日志来检查正在发生的事情。您可以通过在persistence.xml中将属性“
show_sql
”设置为“
true
”,或者使用

回写

 <logger name="org.hibernate" level="DEBUG" /> 
log4j.logger.org.hibernate.SQL=DEBUG

此外,可能会有一种方法将hibernate设置为记录它所做的查询……正如我在问题中所说的,我想知道缺少的表的名称?启用日志记录,这将是检测发生了什么的最好方法。查看更新另外,可能会有一种方法将hibernate设置为记录它所做的查询…正如我在问题中所发布的,我想知道缺少的表的名称?启用日志记录,这将是检测发生了什么的最佳方法。请参阅更新