这里有一个非常奇怪的问题。我有一个为 dev/test/qa/prod 构建的环境列表。每个数据库都连接到不同的数据库,每个数据库对应于每个环境。当我在开发中运行代码时,一切都很好,当我在任何其他环境中运行它时,我得到
Factory method 'sessionFactory' threw exception; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [dbo.Cause_Code]
我现在想指出的是,对于测试/qa/prod,代码已部署到服务器和工作。没有错误,但在本地运行它给了我那个丢失的表。该表肯定存在,并且 dev/test/qa/prod 数据库处于完全相同的架构状态。
您可以在此处看到该表位于 QA 数据库中,并且 IDE 会看到:
将 schema="dbo"添加到表注释中不会执行任何操作,将 hibernate.hbm2ddl.auto 更改为 none 允许其构建,但所有调用都会因相同原因失败。
我应该注意,我测试过的不是我构建的环境。开发工作正常,我将该环境的数据库连接更改为 QA,但失败了。我还尝试将数据源直接添加到 hibernate 持久性窗口,但什么也没做。
有人可以告诉我为什么 IDE 认为 tabble 不存在,但部署的代码运行良好并且表肯定存在?我必须在某个地方缺少一个简单的设置。
最佳答案
好吧,我厌倦了过去 6 个小时尝试不同的事情,并重新安装了 IDE。导入已设置共享环境配置的项目。没有做任何改变,只是运行 QA 构建,第一次尝试就成功了。我猜安装过程中出现了一些困惑。不知道为什么它只影响除开发之外的每个环境。我尝试了从重新启动整个计算机到禁用所有功能再到创建空项目的所有方法,只有重新安装才能修复它。
关于Java Spring Hibernate 模式验证 : Missing Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56584077/