영속성 컨텍스트란 엔티티를 영구히 저장하는 환경을 말한다.1) 비영속 (new) : 영속성 컨텍스트와 전혀 관계가 없는 상태2) 영속 (managed) : 영속성 컨텍스트에 저장된 후 관리되는 상태.3) 준영속 (detached) : 영속성 컨텍스트에서 관리되었다가 관
JPA 사용시, 엔티티 클래스를 만들어줘야 한다. 엔티티에 자주 사용하는, 꼭 써야하는 어노테이션들은 무엇인지 알아보자.
Entity 클래스를 작성할 때 어노테이션을 많이 씁니다. 아래와 같이 많이 쓰게 되는데요.이 어노테이션에서 문제 3가지가 보입니다. 이를 개선하기 위해 해결방법을 정리해봅니다.Setter는 그 의도가 분명하지 않고 객체를 언제든지 변경할 수 있는 상태가 되어서 객체의
1) BaseTimeEntity 생성2) extends BaseTimeEntity 추가Board(BaseTimeEntity를 상속할 엔티티 클래스)3) @EnableJpaAuditing 추가SpringbootBoardExampleApplication
1) EagerLoading : 특정 엔티티를 조회할 때 연관된 모든 엔티티를 같이 로딩, 즉시 로딩이라고 합니다.즉시 로딩은 연관된 엔티티를 모두 가져온다는 장점이 있지만,실무에서 엔티티간의 관계가 복잡해질수록 조인으로 인한 성능 저하를 피할 수 없게 됩니다.JPA에
JPA Pagination, 그리고 N + 1 문제뻥튀기 되는 문제 + distinct 해결법 정리결론 2번째 방식을 선호! 서브쿼리도 MySQL 에서 지장을 주기 때문에!
JPA를 쓸 때 연관관계로 인한 매핑문제로 무한참조(@XToOne)가 생길 수 있다. 이를 막기 위해default인 EagerLoading을 LazyLoading으로 거는데 여기서 문제가 생길 수 있다.바로,Lazy는 기본적으로 실제 객체가 아닌 프록시 객체를 감싸져
JPA 를 사용하면서 Team -> Member 와 같이 OneToMany -> ManyToOne 과 같은 양방향 관계를 가지는 구조에서 많이 발생하는 Json 순환참조에 대해서 알아보자.Json 순환참조는 양뱡향 관계에서 객체를 직렬화 하는 과정에서 양쪽 모두 직렬화
DBMS가 지원해주는 트랜잭션 외 JPA에서도 트랜잭션 처리기버을 소개한다.Pessimistic(선점) Lock(잠금): 비관적 잠금Optimistic(비선점) Lock(잠금): 낙관적 잠금DDD 참고JPA 프로바이더와 DBMS에 따라 잠금 모드의 구현이 다른데, 하이