如何在Hibernate注释中创建Tinyint Field

Her*_*rry 5 java mysql hibernate

我在使用 Hibernate 在 MySQL 数据库中创建tinyint 字段时遇到问题。

我曾经这样编写实体类

@实体

@Table(名称=“表名”)

公共类 MyEntity {

private int id;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}
Run Code Online (Sandbox Code Playgroud)

}

当我检查 MySQL 时, id 字段总是以 Integer(11) 结尾,如何将其设置为 TinyInt ?

任何答案将不胜感激

Gen*_*diy 5

我认为有几种方法可以做到这一点。第一种是使用 @Column 注释上的 columnDefinition 属性来读取如下内容:

@Column(name = "id", columnDefinition = "TINYINT")
Run Code Online (Sandbox Code Playgroud)

这不能跨数据库移植,并且与变量本身是 int 的情况不太相符。这里可能需要一个字节或短字节

另一种方法是使用 @Type 注释,可能与 org.hibernate.type.ByteType 一起使用,因为它似乎表示 TINYINT (链接到 javadoc)。

我希望这有帮助。