【发布时间】:2021-08-09 21:46:44
【问题描述】:
我有一个连接到 MySql 8 数据库的 Springboot Java 8 应用程序。 应用程序调用一个 SQL 视图,该视图有一个 TEXT 类型的列。 (我不知道为什么它会得到那种类型,因为它是一个 ~40 字符长的串联字符串,就像其他获得 VARCHAR 类型的字符串一样。)。视图实体中的这些字段声明为字符串。
如果应用程序部署在 3 台计算机(2 个窗口,1 个 ubuntu 20.04)上,全部使用 mysql 8,它就可以工作。
但在另一台 Debian 10 机器上,它会在启动验证时写入这些错误:org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [meossz] in table [bejovoszamla_tetelek_view]; found [text (Types#LONGVARCHAR)], but expecting [longtext (Types#VARCHAR)]
我不知道为什么具有相同设置、相同版本 mysql (8.0.25) 的相同应用程序在两台机器上的工作方式不同。对于 Windows 机器,我刚刚从 mysql 站点下载了最新版本。对于它工作的 Ibuntu 机器,我使用 apt-get 从 Ubuntu 存储库安装。 对于不工作的 Debian 机器,我使用了官方 repo.mysql.com 和 apt-get。
有什么问题?为什么它的工作方式不同?如何让 JPA 接受字符串字段的所有 SQL 结果数据类型?
【问题讨论】:
-
架构是如何创建的?
-
数据库脚本。但是所有机器上的所有数据库都是用相同的脚本创建的。
标签: java mysql sql hibernate debian