【问题标题】:Spring data jpa hibernate one to may duplicate issueSpring data jpa hibernate 一到可能重复的问题
【发布时间】:2021-11-16 06:15:21
【问题描述】:

UserUserRole 之间存在一对多关系。

public class User {
@Id
@GeneratedValue
private long id;

@Column(unique = true)
private String username;
private String password;

@OneToMany(fetch=FetchType.EAGER)
@JoinTable(
    name = "user_roles",
    joinColumns = {@JoinColumn(name="userId")},
    inverseJoinColumns = {@JoinColumn(name="roleId")}
)
private Collection<UserRole> roles;
}

public class UserRole {
@Id
@GeneratedValue
private long id;

@Column(unique = true)
private String roleName;
}

一开始我可以保存一个用户。但是当我尝试保存另一个用户时,它会拒绝,但连接表上的重复条目除外

【问题讨论】:

  • 您是否尝试使用与现有角色具有相同roleName 的角色来保存新用户?
  • 奇怪的是在我的连接表上,user_rolesrole_id 是一个主键。我怎样才能删除它
  • 我希望 user_idrole_id 的组合都是主键,但实际上不是

标签: spring spring-boot hibernate spring-data-jpa hibernate-mapping


【解决方案1】:

我注意到的一件事是,当我们有一对多关联时,多方外键将成为联结表上的主键。所以,我需要建立多对多的关系。这样两个外键的组合就可以作为一个复合键。

【讨论】:

    猜你喜欢
    • 2016-04-09
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    相关资源
    最近更新 更多