spring jpa: 2개의 글
| 스프링 데이터 JPA 엔티티 저장 상태 전이 스프링 데이터 JPA에서는 기본적으로 JpaRepository를 통해 DB와 상호작용하게 됩니다. JpaRepository는 save 메서드들 통해 DB에 엔티티 정보를 저장하게 됩니다. save 메서드는 단순히 새 엔티티를 DB에 추가하는 것이 아니고 엔티티의 상태에 따라 다른 동작방식을 보입니다. 아래의 조건에 따라 엔티티를 관리해주는 EntitiyManager는 엔티티의 상태를 추적해서 DB에 반영할지 아니면 업데이트를 할 지 결정하게 됩니다. 엔티티의 @Id를 기준으로 해당 프로퍼티가 null이면 Transient 상태로 판단하고 id가 null이 아니면 Detached 상태로 판단합니다. 만일 @Id가 null일 경우 save 메서드로 엔티티를 D..
프로젝트 구조 DB는 편의상 H2 DB 사용 구현체는 Hibernate 사용 Spring 자체 설정보다는 JPA 설정 예제를 위해 Spring Boot 사용 Maven 기반 프로젝트 JPA란 무엇인가? 에 나오는 user, order 테이블을 예제로 사용 JPAConfig.java LocalContainerEntityManagerFactoryBean : EntityManagerFactoryBean을 Spring에서 사용하기 위한 클래스 JpaVendorAdapter : JPA는 여러 구현체가 존재하기 때문에 구현체별 설정을 지원하기 위한 클래스이다. 나는 hibernate를 사용하기 때문에 HibernateJpaVendorAdapter를 사용한다. @Configuration @EnableTransacti..