Я пытаюсь закрепить отношения «один ко многим» с помощью Thymeleaf. Давайте будем простыми. У меня есть thiesis У thiesis есть несколько вопросов.
@Entity
public class Thiesis {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="thiesis")
private Set<Question> questions = new HashSet<>();
@ManyToOne(cascade=CascadeType.ALL)
private Course course;
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
}
И класс вопросов:
@Entity
public class Question {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String question;
@ManyToOne(cascade=CascadeType.ALL)
private Thiesis thiesis;
}
А вот контроллер для сохранения thiesis:
@PostMapping("/teacher/{userId}")
public String addThiesis(@PathVariable Long userId, Thiesis thiesis,String name)
{
thiesisService.save(thiesis, name);
System.out.println(thiesis.getId());
return "redirect:/teacher/" + userId.toString();
}
Также служба для Thiesis:
public Thiesis save(Thiesis thiesis, String name)
{
Course course =courseRepo.findByName(name);
if(course!=null) {
thiesis.setCourse(course);
for(Question question : thiesis.getQuestions()) {
question.setThiesis(thiesis);
questionService.save(question);
}
Date date = new Date();
thiesis.setCreatedAt(new Timestamp(date.getTime()));
return thiesisRepo.save(thiesis);
}
else {
System.out.println("Couldn't save the thiesis");
return null;
}
Thymeleaf:
<form action="" th:object="${thiesis}"method="post">
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" required/>
<div class="form-group row" id="course_id">
<label for="pyetja_1" class="col-12 col-sm-4 col-form-label">Pyetje:</label>
<div class=" col-12 col-sm-8">
<input type="text" class="form-control" placeholder="Emri i Lendes..." th:field="*{course.name}" required/><br/>
</div>
</div>
</form>
Но результат не попадает в базу данных, и в ответ я получаю ошибку 403, когда Я выполняю метод POST. Возможно, проблема в том, как я заполняю поля объекта в тимелисте. Я действительно застрял, и я пробовал тысячи способов, и я не имею дело с этим. Любая помощь очень ценится.