spring-boot - JoinColumn / JoinTable 总是为空,为什么*?
问题描述
大家好,我有 2 个实体用户和角色。一个用户可以有很多角色,所以我做了一个
@Entity
@Table(name="ROLES")
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "role_id")
private Long id;
@Column(name = "name")
private String name;
@ManyToOne(fetch= FetchType.LAZY)
@JoinTable(name = "USER_ROLES",
joinColumns = {@JoinColumn(name = "USER_FK")},
inverseJoinColumns = {@JoinColumn(name = "ROLES_FK")}
)
private User user;
}
以及一个引用与角色的 OneToMany 关系的用户类
@Entity
@Table(name = "USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long user_id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email_id", unique=true, nullable = false)
private String emailId;
@Column(name = "created_at")
private String created_at;
@OneToMany(mappedBy = "user",cascade = CascadeType.MERGE, orphanRemoval = true,fetch=FetchType.LAZY)
private Set<Roles> roles = new HashSet<>();
public User() {
}
public User(String firstName, String lastName, String emailId) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.emailId = emailId;
}
}
但是当我像这样通过邮递员发送 JSON 请求时。
{
"firstName":"Isic1",
"lastName":"edib11",
"emailId":"edib.isic@gmail.com",
"roles":[{"name":"write"}, {"name":"read"}]
}
User 表已正确填充,但 user_roles 表为空?那么我在做什么错任何想法=
解决方案
推荐阅读
- javascript - 从 Unity 播放器外部开始的触摸获取 touchInput
- java - 如何从 javafx 组合框中获取模型 ID
- python-3.6 - 如果该行以加号开头且下一行以 Solaris 开头,则加入该行
- java - 如何在 grafika 的连续捕获中添加音频
- elasticsearch - 将 kendo 搜索查询映射到 elasticsearch 查询
- oauth-2.0 - oAuth2 使用 Olut:invalid_request for Exact online
- ubuntu - 找不到命令“get”,但有 18 个类似的
- asp.net - C# - 如何将单个 ListView 与来自 Sitefinity 的多个 DataSource 绑定
- ionic-framework - 使用 Ionic 输入的自动键盘
- javascript - Vue Router next 回调总是在 beforeEach 中调用