์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ
Repository
repository: JPA๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ณ์ธต, ์ํฐํฐ ๋งค๋์ ์ฌ์ฉ
Entity์ ์ํด ์์ฑ๋ DB์ ์ ๊ทผํ๋ ๋ฉ์๋(ex) findAll()) ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํจ
์ํฐํฐ๋ฅผ ์ ์ธํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์๋ค๋ฉด,
์ฌ๊ธฐ์ ์ด๋ค ๊ฐ์ ๋ฃ๊ฑฐ๋, ๋ฃ์ด์ง ๊ฐ์ ์กฐํํ๋ ๋ฑ์ CRUD(Create, Read, Update, Delete)๋ฅผ ํด์ผ ์ธ๋ชจ๊ฐ ์๋๋ฐ,
์ด๊ฒ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง ์ ์ํด์ฃผ๋ ๊ณ์ธต์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
@Repository : ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋ก, JPA ์์ธ๋ฅผ ์คํ๋ง ๊ธฐ๋ฐ ์์ธ๋ก ์์ธ ๋ณํ
@PersistenceContext : ์ํฐํฐ ๋ฉ๋์ ( EntityManager ) ์ฃผ์
EntityManager ๋ ์ํฐํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
JPA๋ EntityManager๋ก ๋ชจ๋ ๊ฒ์ ๋์
persist
public void save(Member member) {
em.persist(member);
}
member ๊ฐ์ฒด๋ฅผ ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅํ๋ค .
๋์ค์ ํธ๋์ญ์ ์ด ์ปค๋ฐ๋๋ ์์ ์ DB์ ๋ฐ์
find
public Member findOne(Long id) {
return em.find(Member.class, id);
}
๋จ๊ฑด ์กฐํ
find( class ํ์ , PK )
id ๋ก Member ์กฐํํ๊ธฐ
createQuery(JPQL)
public List<Member> findAll() {
return em.createQuery("select m from Member m", Member.class)
.getResultList();
}
JPQL ์ SQL ์ฟผ๋ฆฌ๋ก ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ก
JPQL - from ์ ๋์์ด ํ ์ด๋ธ์ด ์๋ ์ํฐํฐ