여기서 persistenceUnitName 이란 persistence.xml의 고유의 name을 넘기라는 의미 ![]
💥여기서 포인트는 JDBC URL과 PERSISTENCE.XML의 URL과 동일하게 설정해주어야함 NAME, PWD도 마찬가지
2.간단하게 테이블 만들기
💥@Entity 어노테이션을 반드시 붙어야 하는이유
-그래야 아 jpa가 로딩 시 사용하는 것으로 인식하여 관리하게 해줌
결과창에 쿼리가 찍히는 모습은 설정해준 persistence.xml 옵션 중
show.sql / format.sql / use.sql.comments 속성들 때문
--> 직접 쿼리를 짠것이 아니라 JPA가 매핑 정보를 보고 알아서 넣어줌
여기서 이상한점은 MEMBER 테이블을 지정해 주지 않았지만 NAME으로 지정해주어도 된다
회원 수정
6.회원 조건 검색 == JPQL
💥JPQL의 간단히 소개
• 원하는 데이터만 최적화 해서 어떻게 가져올까? 에서 시작됨
• JPA를 사용하면 엔티티 객체를 중심으로만 개발함
• 문제는 검색쿼리
• 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색
• 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능
• 애플리케이션이 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 쿼리 필요
• JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
• SQL 문법과 유사(SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원)
• JPQL은 엔티티 객체를 대상으로 쿼리 (다른 JDBC에 종속적)
• SQL은 데이터베이스 테이블을 대상으로 쿼리전체 조회 =
List result = em.createQuery(qlString: "select m from Member", Member.class).getResultList()이것의 장점은 paging 네비게이션할때 유용함
.setFirstResult(5) // 5번부터
.setMaxResults(8) // 8개