如何在Hibernate注释中创建Tinyint Field

时间:2009-12-08 04:19:45

标签: java mysql hibernate

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

我曾经像这样编写实体类

@Entity

@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;
}

}

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

任何答案都将不胜感激

3 个答案:

答案 0 :(得分:3)

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

@Column(name = "id", columnDefinition = "TINYINT")

这在数据库中是不可移植的,并且与变量本身作为int不能很好地对齐。这里可能需要字节或短字

另一种方法是使用@Type注释,可能使用org.hibernate.type.ByteType,因为它似乎代表了TINYINT(link to javadoc)。

我希望这会有所帮助。

答案 1 :(得分:0)

如果从bean中的注释创建架构,可以尝试使用@Column批注中的columnDefinition属性来定义要执行的SQL。

答案 2 :(得分:0)

将int更改为byte或Byte,无需额外注释