728x90
반응형
계속 이어서 강의 듣는 중입니다.
내용
JPA 실습 환경 구성
jpa를 실습하기 위한 환경을 구성하는 파트입니다.
강의에서는 다음과 같은 구성환경을 따르도록 권고하였습니다.
- h2 설치
- 메이븐
- 자바8 이상
- persistence.xml 설정
- 저는 따로 persistence.xml을 설정해주지 않았습니다.
- 자바 스프링 부트에서는 starter-data-jpa를 로드하면 별도의 persistence.xml을 사용할 필요가 없기 때문입니다.
출처: https://wedul.site/511 [wedul]
데이터베이스 방언
- JPA는 특정 데이터베이스에 종속되지 않습니다.
- 방언을 설정해주면, 그 방언을 기본으로 만들어서 SQL을 생성하는 방식입니다.
- application.properties에 설정해주면 됩니다.
driverClassName=org.h2.Driver
url=jdbc:h2:tcp://localhost/~/ex-hello-jpa
username=sa
password=
흐름
- emf는 하나만 생성되서 앱 전체에 공유한다.
- em은 쓰레드간 1개만 생성되고, 바로 버려야한다.(다른 유저랑 꼬일 수 있음)
- JPA의 모든 데이터 변경은 트랜잭션 내부에서 실행되어야 한다.(그래야 롤백 제대로 할 수 있음)
public static void main(String[] args) {
//엔티티 매니저 팩토리 생성
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성
EntityTransaction tx = em.getTransaction(); //트랜잭션 기능 획득
try {
tx.begin(); //트랜잭션 시작
logic(em); //비즈니스 로직
tx.commit();//트랜잭션 커밋
} catch (Exception e) {
e.printStackTrace();
tx.rollback(); //트랜잭션 롤백
} finally {
em.close(); //엔티티 매니저 종료
}
emf.close(); //엔티티 매니저 팩토리 종료
}
JPQL
- 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리이다.
- 조인 문법을 쓰면서도 테이블에 종속적이지 않을 수 있다.
- 객체지향 SQL이다.
테이블에 의존적이지 않기 위해 많이 노력한 것이 보였습니다. 계속 강의 수강하면서 배워나가야겠습니다.
728x90
반응형
'Dev > SpringBoot' 카테고리의 다른 글
JPA 사용해서 무한 계층 댓글 구현해보기 - 02 (0) | 2022.01.20 |
---|---|
JPA 사용해서 무한 계층 댓글 구현해보기 - 01 (0) | 2022.01.20 |
33. [JPA] 01. JPA 소개 (0) | 2021.11.07 |
31. [springboot] Spring boot 기초 회원가입 예제 v2.0 (2) | 2020.12.31 |
30. [springboot] WebJar를 이용해 CDN 대체하기 (0) | 2020.11.29 |