application.properties
에 아래 라인을 추가했다.in
절을 통해 묶어서 쿼리를 생성한 것을 확인할 수 있다.spring.jpa.properties.hibernate.default_batch_fetch_size=1000
//기존코드
<a href="javascript:void(0);" class="recommend btn btn-sm btn-outline-secondary"
th:data-uri="@{|/question/delete/${question.id}|}">
<script layout:fragment="script" type='text/javascript'>
const delete_elements = document.getElementsByClassName("delete");
Array.from(delete_elements).forEach(function(element) {
element.addEventListener('click', function() {
if(confirm("정말로 삭제하시겠습니까?")) {
location.href = this.dataset.uri;
};
});
});
</script>
//수정코드
<a onclick="return confirm('정말로 삭제하시겠습니까?');" class="recommend btn btn-sm btn-outline-secondary"
th:href="@{|/question/delete/${question.id}|}">
public enum Category {
FREE, IT
}
@Enumerated(EnumType.STRING)
enum
타입 필드를 문자열로 매핑한다. @Enumerated(EnumType.STRING)
private Category category;
QuestionForm
에도 category
를 추가private Category category;
questionRepository
에 저장할 때 category
도 세팅해야한다.category
매개변수는 당연히 컨트롤러로부터 받아옴 public void create(String subject, String content, Category category,
SiteUser author) {
Question question = new Question();
question.setSubject(subject);
question.setContent(content);
question.setCreateData(LocalDateTime.now());
question.setAuthor(author);
question.setCategory(category);
questionRepository.save(question);
}
post
메서드category
를 매개변수로 questionService.create()
에 넘겨준다.questionService.create(questionForm.getSubject(), questionForm.getContent(),
questionForm.getCategory(), user);
찾아보니, enum 객체는 단순하게 불러오지 못함. (https://www.baeldung.com/thymeleaf-enums)
T operator를 통해 enum class의 경로를 넣어주어야 함
<h6 class=" ">카테고리 선택</h6>
<div class="border-bottom pb-2">
<select th:field="*{category}">
<option th:each="cat : ${T(com.mysite.sbb.category.Category).values()}"
th:value="${cat}" th:text="${cat}"></option>
</select>
</div>
<div class="my-3 mb-3">