0

我正在尝试在 Hibernate 中映射一个 tinyint(1) 列。对于要求,我需要在列中保存值“2”,但我无法更改它的 sql 类型。如果我在我的类中将其声明为整数,则休眠验证失败。如何让验证工作并让 int 或 byte 列在其中保存值 2?

这是我的代码:

<property name="flag" type="java.lang.Integer"> 
<column name="flag" not-null="true" sql-type="TINYINT"/> 
</property>

我需要将值 2 保存到标志列中

4

2 回答 2

0

尝试 sql-type="BIT"代替 sql-type="TINYINT"

于 2016-03-21T10:41:30.477 回答
0

只需执行以下语句-

alter table my_table modify column my_col tinyint;

实际上,某些框架将 tinyint(1) 视为布尔类型意味着仅接受 0 和 1,即使 tinyint 最多可以处理 127 个有符号值,最多可以处理 255 个无符号值。

根据 mysql,tinyint(1) 与 tinyint 或 tinyint(4) 相同,但这是将 tinyint(1) 视为布尔值但将 tinyint(2) 或仅将 tinyint 视为普通整数的框架属性。

于 2016-03-21T10:41:48.993 回答