[TIL] 230703 QueryMethod

CountryGirlยท2023๋…„ 7์›” 3์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
15/80

๐Ÿ“Œ QueryMethod

QueryMethod(JPA)๋ฅผ ๋ณด๊ณ ... ๋‚˜๋Š” ์—„์ฒญ๋‚œ ์œ ๋ ˆ์นด์˜€๋‹ค...

์ด๋ ‡๊ฒŒ ์—„์ฒญ๋‚˜๊ฒŒ ์‹ ๊ธฐํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด๋„ˆ๋ฌด ์‹ ๊ธฐํ–ˆ๋‹ค.

์ด๋ฆ„ ๊ทธ๋Œ€๋กœ Query ๋ฌธ์œผ๋กœ Method๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

public List<PostResponseDto> getAllPosts() {
        return postRepository.findAll()
                .stream()
                .map(PostResponseDto::new)
                .toList();
    }

์ด๋ ‡๊ฒŒ ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ•˜๋Š” method๊ฐ€ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ListCrudRepository์—์„œ ์ œ๊ณตํ•˜๋Š” findAll() ์ด๋ผ๋Š” method๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์กฐํšŒ๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค.

๊ฒŒ์‹œ๊ธ€์„ ์ƒ์„ฑํ•œ ์‹œ๊ฐ„์— ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์กฐํšŒ๋ฅผ ํ•˜๊ณ ์‹ถ๋‹ค.

public interface PostRepository extends JpaRepository<Post, Long>{
}

JpaRepository๋ฅผ ์ƒ์†๋ฐ›์•„ PostRepository interface๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ JpaRepository ์•ˆ์— ์žˆ๋Š” ์•„์ฃผ์•„์ฃผ ์‹ ๊ธฐํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

QueryMethod

Query๋ฅผ ์ž‘์„ฑํ•˜๋“ฏ method๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

List<Post> findByOrderByCreatedAtDesc();
// ์ฐพ๋Š”๋‹ค -> ์ •๋ ฌํ•œ๋‹ค -> createdAt ๊ธฐ์ค€์œผ๋กœ -> ๋‚ด๋ฆผ์ฐจ์ˆœํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ method๋ฅผ ๋งŒ๋“ค๋ฉด findAll() ๋Œ€์‹  findByOrderByCreatedAtDesc() ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๋œ๋‹ค..

๋‹ค์‹œ ๋ด๋„ ๋„ˆ๋ฌด ์‹ ๊ธฐํ•˜๋‹ค.

public List<PostResponseDto> getAllPosts() {
        return postRepository.findByOrderByCreatedAtDesc()
                .stream()
                .map(PostResponseDto::new)
                .toList();
    }
profile
๐Ÿ’ป๐ŸŒพ์‹œ๊ณจ์†Œ๋…€์˜ ์—‰๋ง์ง•์ฐฝ ๊ฐœ๋ฐœ ์„ฑ์žฅ์ผ์ง€๐ŸŒพ๐Ÿ’ป (2023.05.23 ~)

0๊ฐœ์˜ ๋Œ“๊ธ€