티스토리 뷰

카테고리 없음

Sort

eyoadgkn 2024. 5. 6. 18:24
Sort
Sort는 엔티티 데이터를 정렬하는 기능입니다.
Sort를 사용하면 엔티티를 특정 기준으로 정렬하여 반환할 수 있습니다.

Sort를 사용하는 이유
데이터 정렬: 엔티티 데이터를 특정 기준(예: 이름, 가격, 등록일 등)으로 정렬하여 반환가능
사용자 경험 향상: 정렬된 데이터를 사용자에게 제공
데이터 처리 효율성: 정렬된 데이터를 사용하면 추가적인 정렬 작업 없이 데이터를 처리
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;

// 엔티티 클래스
@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private int price;
    private LocalDateTime createdAt;
}

// 리포지토리 인터페이스
public interface ProductRepository extends JpaRepository<Product, Long> {
    List<Product> findAll(Sort sort);
}

// 서비스 클래스
@Service
public class ProductService {
    private final ProductRepository productRepository;

    public ProductService(ProductRepository productRepository) {
        this.productRepository = productRepository;
    }

    public List<Product> getAllProducts() {
        // 가격 내림차순으로 정렬
        Sort sort = Sort.by(Sort.Direction.DESC, "price");
        return productRepository.findAll(sort);
    }

    public List<Product> getProductsSortedByName() {
        // 이름 오름차순으로 정렬
        Sort sort = Sort.by(Sort.Direction.ASC, "name");
        return productRepository.findAll(sort);
    }

    public List<Product> getProductsSortedByCreatedAt() {
        // 등록일 내림차순으로 정렬
        Sort sort = Sort.by(Sort.Direction.DESC, "createdAt");
        return productRepository.findAll(sort);
    }
}

ProductRepository에 정의된 findAll(Sort sort) 메서드를 사용하여 엔티티 데이터를 정렬하는 방법을 보여줍니다. Sort 객체를 생성할 때 정렬 기준(속성 이름)과 정렬 방향(오름차순, 내림차순)을 지정할 수 있습니다.
ProductService에서는 가격, 이름, 등록일 기준으로 정렬된 Product 엔티티 목록을 반환하는 메서드를 제공합니다.
Sort를 사용하면 데이터베이스 쿼리 단계에서 정렬 작업이 수행되므로, 애플리케이션 단에서 별도의 정렬 로직을 작성할 필요가 없습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함