재 현
JPA 본문
JPA는 기존 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행한다.
SQL과 데이터 중심의 설계에서 객체 중심의 설계로 이동한다.
개발 생산성을 크게 높일 수 있다.
dependency추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
properties 추가
spring.jpa.show-sql=true
spring.jpa.hiberante.ddl-auto=none // 자동으로 테이블을 만들어주는 기능(none 대신 create) // 이미 DB에 만들었기 때문에 끄고 시작
JPA라는 것은 인터페이스다. 표준 인터페이스. ORM ( Object Relation Mapping)hibernate - 구현체
@Entity (JPA가 관리하겠다)@Generated(strategy = GenerationType.IDENTITY) // 자동으로 id 생성@Column(name="") // 칼럼과 칼럼네임 지정
return em.createQuery("select m from Member m", Member.class).getResultList();
객체 자체를 셀렉트하는 것
Member.class : 멤버 클래스에서 찾겠다
Failed to load ApplicationContext 에러시 ->h2 먼저 실행시켜야 한다
스프링은 해당 클래스의 메서드를 실행할 때 트랜잭션을 시작하고, 메소드가 정상 종료되면 트랜잭션을 커밋한다. 만약 런타임 예외가 발생하면 롤백한다.
JPA를 통한 모든 데이터 변경은 트랜잭션 안에서 실행해야 한다
'Java > Spring' 카테고리의 다른 글
AOP (0) | 2021.07.03 |
---|---|
스프링 데이터 JPA (0) | 2021.07.03 |
잡담 (0) | 2021.07.03 |
스프링 통합 테스트 (0) | 2021.07.03 |
h2 데이터베이스 연결 (0) | 2021.07.03 |