springboot多对多 新增
时间: 2023-11-08 14:03:32 浏览: 39
实现 Spring Boot 多对多关系的新增可以通过以下步骤实现:
1. 创建两个实体类,并在它们之间定义多对多的关系,例如:
```
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "user_role",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<>();
// getters and setters
}
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToMany(mappedBy = "roles", fetch = FetchType.LAZY)
private Set<User> users = new HashSet<>();
// getters and setters
}
```
2. 创建两个 Repository 类,并在其中定义新增方法,例如:
```
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
@Repository
public interface RoleRepository extends JpaRepository<Role, Long> {
}
```
3. 在 Service 类中注入这两个 Repository,并在其中定义新增方法,例如:
```
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private RoleRepository roleRepository;
public void addUserRole(Long userId, Long roleId) {
User user = userRepository.findById(userId).orElseThrow(
() -> new IllegalArgumentException("Invalid user id: " + userId));
Role role = roleRepository.findById(roleId).orElseThrow(
() -> new IllegalArgumentException("Invalid role id: " + roleId));
user.getRoles().add(role);
role.getUsers().add(user);
userRepository.save(user);
roleRepository.save(role);
}
}
```
以上就是实现 Spring Boot 多对多关系的新增的步骤。