//
Search
๐Ÿ’ง

@Repository

@Repository

persistence layer๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์— ์‚ฌ์šฉ
โ€ข
@Component์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ๋นˆ์œผ๋กœ ๋“ฑ๋กœ
โ€ข
DAOํŒจํ„ด์„ ์ ์šฉํ•œ ํด๋ž˜์Šค์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ€ข
persistence layer์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์žก์•„์„œ DataAccessException์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์คŒ
โ€ข
Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์ง์ ‘ ์‚ฌ์šฉํ•  ์ผ์€ ์—†๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉ
โ€ข
JpaRepository ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด์ธ SimpleJpaRepository๋ฅผ ๋ณด๋ฉด @Repository ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์–ด์žˆ์Œ

Spring Data JPA ์ธํ„ฐํŽ˜์ด์Šค ์ข…๋ฅ˜

๋‹จ๊ณ„๋ณ„๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๊นŒ์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ€ข
Repository: ๊ธฐ๋ณธ repository ์ธํ„ฐํŽ˜์ด์Šค. ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋„ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ
โ€ข
CrudRepository: Repository + CRUD ๊ธฐ๋Šฅ ์ œ๊ณต
โ€ข
PagingAndSortingRepository: CrudRepository + ํŽ˜์ด์ง•, ์ •๋ ฌ ๊ธฐ๋Šฅ ์ œ๊ณต
โ€ข
JpaRepository: PagingAndSortingRepository + Spring Data JPA repository ์ „์ฒด ๊ธฐ๋Šฅ

Query Method

โ€ข
์ธํ„ฐํŽ˜์ด์Šค์— ์ž‘์„ฑํ•œ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์ด ๊ณง ์ฟผ๋ฆฌ ํ‘œํ˜„์ด ๋จ
โ€ข
@Repository์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ ์ž‘์„ฑํ•  ๋•Œ ์“ฐ๋Š” ๋ฉ”์„œ๋“œ
//@Query์™€ ๋ฉ”์†Œ๋“œ ๋ช…์ด ๋™์ผํ•œ ์—ญํ• ์„ ํ•จ //@Query("select e from event e where eventName = :eventName and eventStatus = :eventStatus") List<Event> findByEventNameAndEventStatus(String eventName, EventStatus eventStatus)
Java
๋ณต์‚ฌ
โ€ข
๋‹ค์ด๋‚˜๋ฏน ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†์Œ
๋งŒ์•ฝ eventName ๊ฐ’์ด ์•ˆ๋“ค์–ด์˜ค๋ฉด select e.* from event e where event_name is null and event_status = ** ์ด๋Ÿฐ์‹์œผ๋กœ ๋˜์–ด์ ธ๋ฒ„๋ฆผ
Java
๋ณต์‚ฌ
โ€ข
join ๋“ฑ ๋ณต์žกํ•œ ํ‘œํ˜„์€ ๋ถˆ๊ฐ€

๋ช‡๊ฐ€์ง€ ์• ๋…ธํ…Œ์ด์…˜๋“ค

โ€ข
@Param: ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์‚ฌ์šฉํ•˜์—ฌ ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ”์ธ๋”ฉํ•  ๋•Œ ์‚ฌ์šฉ
List<Event> findByEventNameAndEventStatus(@Param("eventName")String eventName, EventStatus eventStatus)
Java
๋ณต์‚ฌ
โ€ข
@Query: ์ง์ ‘ JPQL์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
โ€ข
@NoRepositoryBean: ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
โ—ฆ
ํŠน์ • ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์šด์˜ ๊ฐ€๋Šฅ
โ—ฆ
ํŠน์ • ๋ฉ”์„œ๋“œ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ api์— ๋…ธ์ถœํ•˜๊ณ ์ž ํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œํฌ๋‹‰
ex) readOnly Repository๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž public interface EventReadOnlyRepository<T,ID> extends Repository<T, ID> { Optional<T> findById(ID id); List<T> findAll(); ... }
Java
๋ณต์‚ฌ