Detached2 Spring Data JPA - JPA Repository, save Spring Data JPA - JPA Repository 스프링 부트를 사용할 때는 @EnableJpaRepositories 가 자동으로 등록된다. @SpringBootApplication 안에 연결되어 있다. 스프링 부트는 사용하지 않는다면 @Configuration 과 위 어노테이션을 같이 사용해주면 JpaRepository를 사용할 수 있다. JpaRepository 의 구현체인 SimpleJpaRepository 에 이미 @Repository 가 이미 붙어있기 때문에 빈 으로 등록하기 위해 JpaRespository 에 @Repository 를 꼭 붙이지 않아도 된다. 스프링이 제공하는 @Repository 는 SQLException 또는 JPA와 관련된 Exception을 스프링의 DataAc.. 2021. 2. 10. JPA 기본 - cascade, fetch, query JPA Cascade Cascade란 엔티티 상태를 전파시키는 옵션이다. 엔터티 상태란 다음 4가지를 말한다. Transient : 객체가 단지 선언되고 생성만 되었을 뿐 JPA 는 알지 못하는 상태다. Persistent : JPA가 관리중인 상태다. 예를 들어 Session.save() 할 때 이 상태가된다. Session 같은 PersistentContext 에 객체를 넣어준다. 그 외에 하이버네이트가 1차 캐시, Dirty Checking, Write Behind 등을 관리한다. 1차 캐시 : 객체 상태를 캐시에 저장한다. 예를 들어 이미 캐시에 어떤 데이터가 존재하면 load 명령을 해도 굳이 DB에서 가져오지 않고 있던 값을 사용하여 성능을 끌어올린다. Dirty Checking : 객체의 변.. 2021. 2. 7. 728x90 이전 1 다음