我正在执行我的 Maven 构建,它抛出了这个异常:
最后一个原因:列类型的 x.clients 中的列类型错误。发现:tinyint,预期:整数
我是这样映射的:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
我正在使用 InnoDB 创建列,如下所示:id int NOT NULL UNIQUE AUTO_INCREMENT
这应该没问题吧?为什么说他在找tinyint呢?
最佳答案
我知道这个问题(真的!)很老,但是:
TINYINT 表示 8 位值。它映射到字节/字节。在这两种情况下,它的最小值为 -128,最大值为 127(含)。
SMALLINT 表示 16 位值。它被映射到短/短。
INTEGER 表示 32 位值。它被映射到 int/Integer。
BIGINT 表示 64 位值。它映射到 long/Long。
因此,您不能使用 Integer 映射 tinyint;你必须使用一个字节。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html http://dev.mysql.com/doc/refman/5.7/en/integer-types.html
关于java - Hibernate - 如何提供对整数类型的正确映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149874/