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() + "%"));
    }
}