springboot一对多和多对一
时间: 2024-01-16 18:18:55 浏览: 27
在Spring Boot中使用JPA实现一对多和多对一的关系非常简单。下面是一个示例:
1. 创建实体类:
```java
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToOne
@JoinColumn(name = "class_id")
private Classes classes;
// 省略getter和setter方法
}
@Entity
public class Classes {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@OneToMany(mappedBy = "classes")
private List<User> users;
// 省略getter和setter方法
}
```
2. 创建Repository接口:
```java
public interface UserRepository extends JpaRepository<User, Long> {
}
public interface ClassesRepository extends JpaRepository<Classes, Long> {
}
```
3. 编写Service层:
```java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User saveUser(User user) {
return userRepository.save(user);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
// 省略其他方法
}
@Service
public class ClassesService {
@Autowired
private ClassesRepository classesRepository;
public Classes saveClasses(Classes classes) {
return classesRepository.save(classes);
}
public List<Classes> getAllClasses() {
return classesRepository.findAll();
}
// 省略其他方法
}
```
4. 编写Controller层:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/users")
public User createUser(@RequestBody User user) {
return userService.saveUser(user);
}
@GetMapping("/users")
public List<User> getAllUsers() {
return userService.getAllUsers();
}
// 省略其他方法
}
@RestController
public class ClassesController {
@Autowired
private ClassesService classesService;
@PostMapping("/classes")
public Classes createClasses(@RequestBody Classes classes) {
return classesService.saveClasses(classes);
}
@GetMapping("/classes")
public List<Classes> getAllClasses() {
return classesService.getAllClasses();
}
// 省略其他方法
}
```
这样,你就可以通过访问相应的接口来实现一对多和多对一的关系了。