为什么此映射无法将列ID创建为自动增量?
@Entity(name = "user_role")
public class UserRole {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, unique = true)
private Long id;
@OneToOne(cascade = CascadeType.MERGE, targetEntity = Role.class)
@JoinColumn(name = "role_id")
private Role role;
@OneToOne(cascade = CascadeType.MERGE, targetEntity = User.class)
@JoinColumn(name = "user_id")
private User user;
}
提前致谢!
答案 0 :(得分:1)
要在MySQL中使用AUTO_INCREMENT列,您应该使用IDENTITY策略:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Long id;
//Your code
要了解详情,请查看此Link 明确提到
IDENTITY策略还会在提交期间为每个新实体对象生成一个自动值。
答案 1 :(得分:0)
好吧,只是为了帮助别人。
问题是我的实体“user_role”的名称,我不知道为什么,但在将实体名称更改为“userrole”后,一切正常,id列被创建为AUTOINCREMENT。
希望这有帮助!