hibernate不会在mysql表上生成自动增量约束

问题描述 投票:3回答:1

我一直在不同的论坛中搜索信息,并且尝试过不同的解决方案,但仍然无法纠正我的问题。

我正在使用hibernate4批注来映射我的实体。在mysql中使用休眠模式创建表时,未检测到自动增量键。

我有以下代码:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false)
private int responseId;

我也尝试过:

@Id
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
private int responseId;

使用休眠模式,ID将自动分配给一行,但是在mysql表中,它没有AutoIncrement约束。我必须手动将字段标记为AI。当我手动插入记录进行测试或对该表使用jdbc语句时,这将成为问题。请让我知道我在配置中缺少什么,这些配置会阻止休眠ID分配自动增量约束。

mysql hibernate auto-increment hibernate-annotations
1个回答
5
投票

使用IDENTITY生成器,并使用columnDefinition@Column属性指定列的类型:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "MEDIUMINT NOT NULL AUTO_INCREMENT")
private int responseId;
© www.soinside.com 2019 - 2024. All rights reserved.