java - Hibernate - 如何提供对整数类型的正确映射?

标签 java mysql hibernate maven

我正在执行我的 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/

相关文章:

php - 如何通过直接SQL查询在magento中设置产品的special_price?

java - Johnzon 反序列化日期而不是休息

java - 将 Android 屏幕一分为二

java - 使用 Java 从大文件中删除注释

java - 使用 twitter4j 和 java 获取所有用户时间线推文

mysql - 子查询 : slow. 中的 GROUP BY 使用 View 有帮助,但这可以在一个查询中完成吗?

sql - 如何在 MySQL 数据库中存储超过 255 个字符?

java - Hibernate 4.2.2 session 工厂错误

Java hibernate org.hibernate.exception.SQLGrammarException : could not extract ResultSet on createSQLQuery

java - 线程中的异常 "main"org.hibernate.AnnotationException : @OneToOne or @ManyToOne