Develop/JPA
JPA를 통해 전체 필드 선택시에 제목 및 내용 모두 검색되게 하는법
롱하
2024. 7. 2. 16:55
.html
<ul class="select-options">
<li class="option" data-value="제목" onclick="setSearchField('title')">제목</li>
<li class="option" data-value="내용" onclick="setSearchField('content')">내용</li>
</ul>
<input type="hidden" name="searchField" id="searchField" value="">
<script th:inline="javascript">
function setSearchField(value) {
$('#searchField').val(value);
}
</script>
Dao
//제목 및 내용 [field가 빈 문자열일때 조건 추가]
if (!StringUtils.isEmpty(paramDto.getSearchValue())) {
if (StringUtils.isEmpty(paramDto.getSearchField())) {
Specification<NoticeSubEntity> titleSpec = (root, query, builder) -> builder.like(root.get("title"),
"%" + paramDto.getSearchValue() + "%");
Specification<NoticeSubEntity> contentSpec = (root, query, builder) -> builder.like(root.get("content"),
"%" + paramDto.getSearchValue() + "%");
spec = spec.and(titleSpec.or(contentSpec));
} else {
spec = spec.and((root, query, builder) -> builder.like(root.get(paramDto.getSearchField()),
"%" + paramDto.getSearchValue() + "%"));
}
}