JPA 2

JPA와 Entity , 동적 쿼리 처리를 위한 Querydsl 설정

Entity 클래스에 @MappedSuperClass라는 어노테이션을 적용하면 테이블로 생성되지 않습니다. 실제 테이블은 Entity클래스를 상속한 엔티티의 클래스로 데이터베이스 테이블이 생성됩니다. JPA는 JPA만의 고유한 메모리공간(context)을 이용해서 엔티티 객체들을 관리합니다. 기존의 Mybatis 기반의 프로그램과 달리 단계가 하나 더 있는 방식입니다. Mybatis를 이용하는 경우 SQL을 위해 전달되는 객체는 모두 SQL 처리가 끝난 뒤 어떻게 되든 상관없는 객체들인 반면에 JPA에서 사용하는 엔티티 객체들은 영속 콘텍스트라는 곳에서 관리되는 객체입니다. 이 객체들이 변경되면 결과적으로 데이터베이스에 이를 반영하는 방식입니다. JPA에서는 해당 엔티티 객체는 유지되고 필요할 때 꺼내서..

Spring + Boot 2021.04.18

JpaRepository / JPA로 CREATE, INSERT 해보기

insert : save(entity 객체) select : findById(키 타입), getOne(키 타입) update : save(entity 객체) delete : deleteById(키 타입), delete(엔티티 객체) insert와 update작업에 사용하는 메서드가 동일하게 save()를 이용하는데 JPA의 구현체가 메모리상에서 객체를 비교하고 없다면 insert, 존재하면 update를 동작시키는 방식이기 때문입니다. 이제 아래처럼 MemoRepository 인터페이스를 만들어 줍니다. import org.springframework.data.jpa.repository.JpaRepository; import org.zerock.ex2.entity.Memo; public interface..

Spring + Boot 2021.04.07