JPA JpaEntityListener Event 생성방법 ApplicationEvent 상속 @Getter public class MyEvent extends ApplicationEvent { private int data; public MyEvent(object source) { super(source); } public MyEvent(object source, int data) { super(source); this.data = data; } } Spring 4.2 부터는 ApplicationEvent를 상속받지 않아도 이벤트로 사용할 수 있다. @Getter public class MyEvent { private int data; public MyEvent(int data) { this.data ..
스프링 데이터 JPA(inflearn) - 백기선 스프링 데이터 JPA JPA Repository @EnableJpaRepositories 스프링 부트 사용할 때는 사용하지 않아도 자동 설정 됨. 스프링 부트 사용하지 않을 때는 @Configuration과 같이 사용. @Repository 안붙여도 된다. (실제 구현체에서 가지고 있다. 중복임..) @Repository SQLExcpetion 또는 JPA 관련 예외를 스프링의 DataAccessException으로 변환 해준다. 엔티티 저장하기 Transient인지 Detached 인지 어떻게 판단 하는가? 엔티티의 @Id 프로퍼티를 찾는다. 해당 프로퍼티가 null이면 Transient 상태로 판단하고 id가 null이 아니면 Detached 상태로 ..
스프링 데이터 JPA(inflearn) - 백기선 스프링 데이터 Common 스프링 데이터 JPA 활용 파트 소개 스프링 데이터 : 하나의 프로젝트를 말하는것이 아니고, 여러개의 프로젝트들의 묶음을 말하는것. (SQL & NoSQL 저장소 지원 프로젝트의 묶음.) 스프링 데이터 Common : 여러 저장소 지원 프로젝트의 공통 기능 제공. 스프링 데이터 REST : 저장소의 데이터를 하이퍼미디어 기반 HTTP 리소스로(REST API로) 제공하는 프로젝트. 스프링 데이터 JPA : 스프링 데이터 Common이 제공하는 기능에 JPA 관련 기능 추가 참고문서 Repository 앞서 JpaRepository를 상속하는 클래스를 만들어 사용한적이 있었는데.. 사실 해당 부분은 JpaRepository가 스프..
스프링 데이터 JPA(inflearn) - 백기선 핵심 개념 이해 엔티티의 상태와 Cascade 엔티티의 상태 Transient: JPA가 모르는 상태 ex) new 사용하여 객체생성 상태 Persistent: JPA가 관리중인 상태 (1차 캐시, Dirty Checking(변경사항을 계속체크), Write Behind, …) ex) session.save()를 통해 저장한 상태 1차 캐시(persistent context(session, entitiymanager등)에 저장된다.) 바로 쿼리문을 날리지 않고 1차캐싱 후, 트랜잭션 종료 시 객체를 체크하여 쿼리문을 날린다. (불필요한 쿼리문 날리지 않는다.) Detached: JPA가 더이상 관리하지 않는 상태. session이 끝난상태 Removed:..
- Total
- Today
- Yesterday