我找不到在 Spring Boot 中使用 ManyToMany 插入資料的方法。誰能建議我如何在春季啟動和休眠中使用 M-To-M 保存資料。
下面是我的代碼。
物體
@Entity
@Table(name = "user_master")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer user_id;
private String name;
@JsonManagedReference
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "users_roles", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = {
@JoinColumn(name = "role_id") })
private Set<Roles> roles;
// constructor and getter/setter
}
@Entity
@Table(name = "role_master")
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer role_id;
private String name;
@JsonBackReference
@ManyToMany(cascade = CascadeType.ALL, mappedBy = "roles")
private Set<Users> users;
// constructor and getter/setter
}
服務
@Override
public Users addAddressPerson(Set<Users> users) {
for(Roles roles: users.getRoles()) // Error: The method getRoles() is undefined for the type List<Users>
{
roles.setUsers(users); // Error: The method setUsers(Set<Users>) in the type Roles is not applicable for the arguments (Users)
}
return UserRepo.save(users);
}
uj5u.com熱心網友回復:
嘗試
@Override
public List<Users> addAddressPerson(List<Users> users) {
for(User user: users) {
for(Roles roles: user.getRoles()) {
roles.getUsers().add(user);
}
}
return users.stream().map(UserRepo::save).collect(Collectors.toList());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414182.html
標籤:
