【发布时间】:2018-04-25 04:12:09
【问题描述】:
为什么此映射无法将列 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;
}
提前致谢!
【问题讨论】:
-
"AUTO" 没有告诉 JPA 创建一些东西 "AUTO_INCREMENT";它告诉 JPA 提供者使用它想要的任何策略,所以你得到你所得到的。 “IDENTITY”等价于 AUTO_INCREMENT。
-
我尝试使用 IDENTITY,但得到了相同的结果。我不明白!
-
当您告诉人们您如何指示您的 JPA 提供者生成表格时,以及当您告诉人们发布了什么 DDL 时,人们可以提供建议。哦,至少要提到哪个 JPA 提供者
-
@DN1 完全正确。尝试删除表并再次运行您的项目。
-
所以你没有使用 JPA 机制来生成模式,而是使用 Hibernate 特定机制...
标签: mysql hibernate spring-boot spring-data spring-data-jpa