@Entity @Table(name = "classes") public class Group { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotNull @Pattern(regexp = "^[1]?\\d{1}[А-Я]{1}$") private String name; @NotNull @OneToOne @JoinColumn(name = "teacher_id") User teacher; @OneToMany(fetch = FetchType.EAGER) @JoinTable ( name="class_students", joinColumns={ @JoinColumn(name="class_id", referencedColumnName="id") }, inverseJoinColumns={@JoinColumn(name="student_id", referencedColumnName="id")} ) private List<User> users; public String getName() { return name; } public void setName(String name) { this.name = name; } public User getTeacher() { return teacher; } public void setTeacher(User teacher) { this.teacher = teacher; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } public Long getId() { return id; } }
Есть контроллер:
@RestController @RequestMapping(value = "/classes", produces = "application/json") public class GroupRestController{ @Autowired GroupService groupService; @GetMapping @ResponseBody public List<Group> list() { return groupService.list(); } @PostMapping public ResponseEntity<Object> createGroup(@Valid @RequestBody Group group) { groupService.save(group); return new ResponseEntity<>("Class is created successfully", HttpStatus.CREATED); } }
Когда я делал MVC приложения, то валидация данных отрабатывалась, некорректные данные не вносились в базу. Здесь же все ограничения игнорируются, словно не стоит аннотации @Valid.
Есть ли разница в валидации MVC и Rest? Читаю материалы в интернете - вроде всё делаю правильно.