개발공부/JPA 스터디(9)
-
[ORM 표준 JPA] 10장 객체지향 쿼리언어(JPQL) (1)
ORM방식으로 복잡한 쿼리를 만들 수 있게 도와주는 기능입니다. JPA는 JPQL을 분석해 적절한 SQL을 만들어 DB를 조회합니다. 종류 Native SQL : JPQL 대신 SQL을 사용할 수 있음 QueryDSL : SQL 작성을 도와주는 빌더 클래스 모음 빌더클래스 쿼리를 코드로 작성할 수 있기 때문에 컴파일 시점에 오류가 발생합니다. 쿼리 전용 엔티티(메타모델)를 만들어주는 어노테이션 프로세서가 필요합니다. QueryDSL //준비 JPAQuery query = new JPAQuery(em); QMember member = QMember.member; //쿼리, 결과조회 List members = query.from(member) .where(member.username.eq("kim")) .l..
2021.07.25 -
(2) JPA 시작
2.2 H2 DB설치 already port in use Exception : C:/Users/[username] > h2.properties 파일에서 port 설정 변경할 수 있습니다. H2 콘솔 server 실행할 때 Database "C:/Users/klyhy/test" not found, either pre-creat : JDBC URL : jdbc:h2:~/test 로 먼저 연결한다음 (DB가 설치됨) localhost를 연결합니다. 2.5 JPA 설정 교재에선 hibernate 의존을 사용했지만 스터디 프로젝트는 hiberante core, jpa가 내장된 spring-boot-starter-data-jpa를 사용합니다. spring.datasource로 시작하는 속성을 사용합니다. DB 방언..
2021.06.21 -
(1) JPA 소개
회사에서 Mybatis를 사용해 빚어지는 SQL 휴먼에러와 유지보수에 대한 어려움 때문에 JPA를 공부해 도입시키고자 스터디를 시작했습니다. 현재 5명인 스터디는 정해진 순서대로 맡은 챕터를 스터디 시간에 발표하는 방식으로 진행되고 있습니다. 요약본은 마크다운 파일로 Github 레포지토리에 커밋하기 때문에 같은 양식을 유지합니다. JPA 장점 CRUD SQL 작성할 필요가 없습니다. 성능에 대한 문제는 SQL을 직접 작성하는 것으로 보완할 수 있습니다. 네이티브 SQL로 직접 작성할 수도 있고 쿼리 힌트도 작성할 수 있습니다. 객체 중심으로 생산성과 유지보수가 확연히 좋아집니다. e.g. MySQL 데이터베이스에서 오라클 데이터베이스로 변경할 때 어렵지 않습니다. SQL을 직접 작성할 때 발생하는 문제..
2021.06.21