Java 冬眠中的朗瓦查尔
这是物业,Java 冬眠中的朗瓦查尔,java,database,hibernate,spring-boot,Java,Database,Hibernate,Spring Boot,这是物业, @Column( name = "description") private String description; 这是MySql表 编译过程中会抛出此错误 原因:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:表[product]中的[description]列中遇到错误的列类型;已找到[longtext(类型#LONGVARCHAR)],但应为[varchar(255)(类型#varchar)] 我缺
@Column( name = "description")
private String description;
这是MySql表
编译过程中会抛出此错误
原因:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:表[product]中的[description]列中遇到错误的列类型;已找到[longtext(类型#LONGVARCHAR)],但应为[varchar(255)(类型#varchar)]
我缺少什么?您可以修改数据库:
ALTER TABLE product MODIFY description VARCHAR(255);
如果描述值超过255个字符,这个简单的ALTER TABLE
命令可能会失败,因此您可能需要创建一个新列,转换值并删除原始列
或者您可以调整Java代码:
@Lob
@Column(name = "description", columnDefinition = "LONGTEXT")
private String description;
您可以先尝试省略列定义
,它可能是Hibernate默认的MySQL文本LOB。对我来说,很有效
@Column(name = "DeckName", n`enter code here`ullable = true, columnDefinition = "nvarchar(MAX)")
我使用了@Type(org.hibernate.annotations.Type;),它可以工作:
`addresses` text CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL
@Column(columnDefinition = "text")
@Type(type = "text")
private String addresses;
您的
hbm2ddl
在application.properties
中的设置是什么?@Jan Halasa,hbm2ddl是有效的。如果找到了[mediumblob(Types#LONGVARBINARY)],但需要[longtext(Types#LONGVARCHAR)]