我曾经有一个名为database
的数据库,使用hibernate及其模型,一切都很好。
我删除了<property name="hibernate.hbm2ddl.auto">
以避免更新或创建,因为它是一个生产服务器,我们希望手动执行。
我们最近切换到了database2
,因此我们切换了hibernate配置文件和所有hibernate XML模型。
`<class name="com.api.models.database.MmApplications" table="mm_applications" catalog="database2">`
但如果我们迁移数据库、模型和连接,它会一直在寻找database
事件。
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'database.mm_applications' doesn't exist
有人能帮我吗?
更新----
Hibernate正在连接到正确的数据库(database2),但有一个前缀作为前缀database.
,使查询到达database
而不是database2
,当我试图强制使用default_schema
时,我的查询变成:
`... from database.database2.mm_applications ....`
知道吗?
我的数据库是在hibernate.connection.url
属性中指定的。你也改变了吗?例如:jdbc:mysql://localhost/mydatabase
此外,也许您应该将其值设置为validate
,而不是删除hibernate.hbm2ddl.auto
。这样hibernate将确保数据模型与数据库模式匹配。
我发现了问题,它是部署在同一tomcat服务器上的另一个使用hibernate的应用程序,以及另一个数据库(database
),与新应用程序发生冲突。。。
仍然有一些奇怪的地方,通过连接到任何数据库,hibernate将使用hibernate模型中指定的目录,因此使用catalog.table_name 构建请求
希望这有一天能帮助到别人。