我一直在不同的论坛中搜索信息,并且尝试过不同的解决方案,但仍然无法纠正我的问题。
我正在使用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分配自动增量约束。
使用IDENTITY生成器,并使用columnDefinition
的@Column
属性指定列的类型:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "MEDIUMINT NOT NULL AUTO_INCREMENT")
private int responseId;