diff --git a/src/main/java/com/coverflow/company/application/CompanyService.java b/src/main/java/com/coverflow/company/application/CompanyService.java index eb59f81c..02fcbb1e 100644 --- a/src/main/java/com/coverflow/company/application/CompanyService.java +++ b/src/main/java/com/coverflow/company/application/CompanyService.java @@ -43,7 +43,7 @@ public SearchCompanyResponse search( final int pageNo, final String name ) { - Page companies = companyRepository.findAllByNameStartingWithAndCompanyStatus(generatePageAsc(pageNo, NORMAL_PAGE_SIZE, "name"), name) + Page companies = companyRepository.findByNameStartingWithAndCompanyStatus(generatePageAsc(pageNo, NORMAL_PAGE_SIZE, "name"), name) .orElseThrow(() -> new CompanyNotFoundException(name)); return SearchCompanyResponse.of( diff --git a/src/main/java/com/coverflow/company/domain/Company.java b/src/main/java/com/coverflow/company/domain/Company.java index 58f2e48c..7e0c7354 100644 --- a/src/main/java/com/coverflow/company/domain/Company.java +++ b/src/main/java/com/coverflow/company/domain/Company.java @@ -16,11 +16,7 @@ @AllArgsConstructor @Builder @Entity -@Table(name = "tbl_company", - indexes = { - @Index(name = "company_name_idx", columnList = "name"), - @Index(name = "company_status_idx", columnList = "companyStatus") - }) +@Table(name = "tbl_company", indexes = {@Index(name = "idx_company_name", columnList = "name")}) public class Company extends BaseTimeEntity { @Id diff --git a/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java b/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java index c3983e67..d608d8a8 100644 --- a/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java +++ b/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java @@ -19,7 +19,7 @@ public interface CompanyRepository extends JpaRepository, Company WHERE c.name LIKE :name% AND c.companyStatus = 'REGISTRATION' """) - Optional> findAllByNameStartingWithAndCompanyStatus( + Optional> findByNameStartingWithAndCompanyStatus( final Pageable pageable, @Param("name") final String name ); diff --git a/src/main/java/com/coverflow/company/infrastructure/CompanyRepositoryCustomImpl.java b/src/main/java/com/coverflow/company/infrastructure/CompanyRepositoryCustomImpl.java index 93db049e..f83da006 100644 --- a/src/main/java/com/coverflow/company/infrastructure/CompanyRepositoryCustomImpl.java +++ b/src/main/java/com/coverflow/company/infrastructure/CompanyRepositoryCustomImpl.java @@ -3,17 +3,12 @@ import com.coverflow.company.domain.Company; import com.coverflow.company.domain.CompanyStatus; import com.coverflow.company.dto.request.FindCompanyAdminRequest; -import com.querydsl.core.types.Order; -import com.querydsl.core.types.OrderSpecifier; import com.querydsl.core.types.dsl.BooleanExpression; -import com.querydsl.core.types.dsl.EntityPathBase; -import com.querydsl.core.types.dsl.PathBuilder; import com.querydsl.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.util.StringUtils; import java.util.List; @@ -22,32 +17,13 @@ import java.util.concurrent.ExecutionException; import static com.coverflow.company.domain.QCompany.company; +import static com.coverflow.global.util.RepositoryUtil.makeOrderSpecifiers; @RequiredArgsConstructor public class CompanyRepositoryCustomImpl implements CompanyRepositoryCustom { private final JPAQueryFactory jpaQueryFactory; - public static OrderSpecifier[] makeOrderSpecifiers(final EntityPathBase qClass, final Pageable pageable) { - return pageable.getSort() - .stream() - .map(sort -> toOrderSpecifier(qClass, sort)) - .toList().toArray(OrderSpecifier[]::new); - } - - private static OrderSpecifier toOrderSpecifier(final EntityPathBase qClass, final Sort.Order sortOrder) { - final Order orderMethod = toOrder(sortOrder); - final PathBuilder pathBuilder = new PathBuilder<>(qClass.getType(), qClass.getMetadata()); - return new OrderSpecifier(orderMethod, pathBuilder.get(sortOrder.getProperty())); - } - - private static Order toOrder(final Sort.Order sortOrder) { - if (sortOrder.isAscending()) { - return Order.ASC; - } - return Order.DESC; - } - @Override public Optional> findWithFilters( final Pageable pageable, diff --git a/src/main/java/com/coverflow/global/util/PasswordUtil.java b/src/main/java/com/coverflow/global/util/PasswordUtil.java index a1180b18..75e34013 100644 --- a/src/main/java/com/coverflow/global/util/PasswordUtil.java +++ b/src/main/java/com/coverflow/global/util/PasswordUtil.java @@ -3,9 +3,6 @@ import java.util.Random; -/** - * 폼 로그인 구현 시 사용 예정 - */ public class PasswordUtil { public static String generateRandomPassword() { diff --git a/src/main/java/com/coverflow/global/util/RepositoryUtil.java b/src/main/java/com/coverflow/global/util/RepositoryUtil.java new file mode 100644 index 00000000..bf1f8538 --- /dev/null +++ b/src/main/java/com/coverflow/global/util/RepositoryUtil.java @@ -0,0 +1,34 @@ +package com.coverflow.global.util; + +import com.querydsl.core.types.Order; +import com.querydsl.core.types.OrderSpecifier; +import com.querydsl.core.types.dsl.EntityPathBase; +import com.querydsl.core.types.dsl.PathBuilder; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; + +public class RepositoryUtil { + + private RepositoryUtil() { + } + + public static OrderSpecifier[] makeOrderSpecifiers(final EntityPathBase qClass, final Pageable pageable) { + return pageable.getSort() + .stream() + .map(sort -> toOrderSpecifier(qClass, sort)) + .toList().toArray(OrderSpecifier[]::new); + } + + private static OrderSpecifier toOrderSpecifier(final EntityPathBase qClass, final Sort.Order sortOrder) { + final Order orderMethod = toOrder(sortOrder); + final PathBuilder pathBuilder = new PathBuilder<>(qClass.getType(), qClass.getMetadata()); + return new OrderSpecifier(orderMethod, pathBuilder.get(sortOrder.getProperty())); + } + + private static Order toOrder(final Sort.Order sortOrder) { + if (sortOrder.isAscending()) { + return Order.ASC; + } + return Order.DESC; + } +}