이번에는 그냥 jpa가 아닌 spring boot를 써서 jpa를 사용한다.
gradle에
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
이것만 넣어주면 jpa를 스프링부트에서 사용하기 위한 라이브러들을 다 가져와 주기 때문에 엄청 편리하게 사용할 수 있다.
오늘 사용한건 @PersistenceContext 이 어노테이션이다. 사용법은
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
}
repository에서 사용하고 EntityManager 위에 @PersistenceContext 이 어노테이션만 넣어주면 그냥 jpa에서 사용했던
META-INF 폴더밑에 persistence.xml을 만들어서 설정하는 수고를 덜어준다. 얘가 다 해준다.
물론 yml파일을 만들어서 data connection, jpa 같은 설정은 해주어야한다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/springjpa;MVCC=TRUE
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create # 실행때마다 기존 테이블 지우고 새로 생성
properties:
hibernate:
# show_sql: true 시스템아웃 로그만 찍히기 때문에 주석.
format_sql: true
logging:
level:
org.hibernate.SQL: debug # 시스템아웃이 아닌 로그로 찍힌걸 보여주므로 이거 사용.
이 코드들을 읽어서 EntityManagerFactory같은 것들이 다 만들어진다. 그래서 그냥 @PersistenceContext이것만 써주면
EntityManager를 사용하기 위한 준비는 끝난다.
'SpringBoot+Jpa' 카테고리의 다른 글
casecade(영속성 전이) (0) | 2022.11.25 |
---|---|
OSIV (0) | 2022.10.29 |
1대 N fetch join 위험성 (0) | 2022.10.27 |
EntityManager의 @Autowired (0) | 2022.10.23 |
JPA사용시 @Transactional (0) | 2022.10.23 |