这是财产,
@Column( name = "description")
private String description;
在编译期间抛出此错误,
引起:org.hibernate.tool.schema.spi.SchemaManagementException:模式验证:表[product]中的[description]列中遇到错误的列类型;找到[longtext(Types#LONGVARCHAR)],但期待[varchar(255)(Types#VARCHAR)]
我缺少什么?
答案 0 :(得分:9)
您可以修改数据库:
ALTER TABLE product MODIFY description VARCHAR(255);
如果描述值超过255个字符,则此简单ALTER TABLE
命令可能会失败,因此您可能需要通过创建新列并转换值并删除原始列来执行此操作。
或者您可以调整Java代码:
@Lob
@Column(name = "description", columnDefinition = "LONGTEXT")
private String description;
您可以先尝试省略columnDefinition
,它可能是Hibernate的默认MySQL文本LOB。
答案 1 :(得分:4)
我使用@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;
答案 2 :(得分:0)
对我来说,有效
@Column(name = "DeckName", n`enter code here`ullable = true, columnDefinition = "nvarchar(MAX)")