我在使用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?
任何答案都将不胜感激
答案 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,无需额外注释