【发布时间】:2018-12-29 01:36:22
【问题描述】:
我的项目包含一个卡片实体和一个用户实体,它们之间存在多对多的关系。将用户对象插入卡片对象时,它不会将数据插入数据库的 user_card 表中。
//控制器
@PostMapping(value = "create")
public Card create( @RequestBody JSONObject data){
Card card = new Card();
String name =(String) data.get("name");
Long columnId = Long.valueOf((Integer)data.get("columnId"));
Long ownerId = Long.valueOf((Integer)data.get("ownerId"));
Integer cardOrder = Integer.valueOf((Integer)data.get("cardOrder"));
String lastDate =(String) data.get("lastDate");
String description =(String) data.get("description");
String assignedUsersId= (String)(data.get("assignedUsers"));
String[] assignedUsersIdArray=assignedUsersId.split(",");
List<User> assignedUsers = new ArrayList<>();
for(int i=0;i<assignedUsersIdArray.length ;i++){
String id = assignedUsersIdArray[i];
if(!id.equals("")) {
assignedUsers.add(userService.getOne(Long.parseLong(id)));
}
}
card.setName(name);
card.setColumnId(columnId);
card.setOwnerId(ownerId);
card.setCardOrder(cardOrder);
card.setLastDate(lastDate);
card.setDescription(description);
card.setUsers(assignedUsers);
return cardService.save(card);
}
//用户实体
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(
name = "user_card",
joinColumns = {@JoinColumn(name = "userid")},
inverseJoinColumns = {@JoinColumn(name="cardid")}
)
@JsonIgnoreProperties("users")
private List<Card> cards = new ArrayList<>();
public List<Card> getCards() {
return cards;
}
//卡片实体
@ManyToMany(mappedBy = "cards")
@JsonIgnoreProperties("cards")
private List<User> users = new ArrayList<>();
// @JsonManagedReference
public void setUsers(List<User> users) {
for(User user : users){
this.users.add(user);
}
}
public List<User> getUsers() {
return users;
}
【问题讨论】:
标签: spring hibernate jackson spring-data-jpa jackson2