프로그래밍/JPA (4) 썸네일형 리스트형 스프링 데이터 JPA - 새로운 엔티티를 구별하는 방법 (merge와 변경감지) 스프링 데이터 JPA를 사용하면 엔티티를 저장할 때 save 메소드를 사용하게 된다. 이때 ..! save의 기준에 따라 em.persist / em.merge로 나뉘게 되는데 머지를 사용하면 들고 있는 값 제외하고 다 null로 들어가게 된다... (갠적으로도 머지...는 안좋다고 배우기도 했다. 인서트로 들어간건지 업데이트로 들어간건지 구분이 안돼서) @Repository @Transactional(readOnly = true) public class SimpleJpaRepository implements JpaRepositoryImplementation { ... @Transactional @Override public S save(S entity) { Assert.notNull(entity, "E.. 스프링 데이터 JPA - Auditing 등록일, 수정일, 등록자, 수정자 자동 입력? 하.. 개인 프로젝트 하면서도 어떻게 하면 해당 값들을 자동적으로 넣어줄 수 있을까? 하며 고민했던 부분이다. 그런데 강의로 이렇게 나와 있고 너무나도 간편하게 사용할 수 있다니..! 대박적 진짜 우물 안 개구리가 맞았다.. ㅠㅠ 이런 기능들 모르고 있었다니.. 그리고 쓰지 않는다니.. 흑흑.. 넘 절망적 ㅠ 그치만 지금이라도 알게되어서 다행이다 @EntityListeners(AuditingEntityListener.class) @MappedSuperclass @Getter public class BaseEntity extends BaseTimeEntity{ @CreatedBy @Column(updatable = false) private String createBy; @LastModifiedBy pri.. 스프링 데이터 JPA - 사용자 정의 리포지토리 구현 (내가 원했던 내용 그럼 복잡한 쿼리는 어떻게 구현해?) 스프링 데이터 JPA가 아주 잘 만들어 졌지만.. 실무에서는 사실 복잡한 쿼리를 사용할 일이 많다 그럴때 쿼리를 구현해줘야하는데 인터페이스 안에 구현할 수 없다..! 이를 해결하기 위해 스프링 데이터 JPA가 제공하는 방식이 있다. 사용자 정의 리포지토리 구현 1. 임의의 interface를 만든다. (예시 MemberRepositoryCustom) 2. MemberRepositoryCustom 안에 구현하고자 하는 메소드를 정의한다. public interface MemberRepositoryCustom { List findMemberCustom(); } 3. 1번에서 만든 인터페이스를 상속받을 클래스를 만든다. 이때 클래스이름은 사용자정의 인터페이스 + Impl 로 지정해야한다. 사용자 정의 구현 클.. 순수 JPA와 스프링 데이터 JPA - 메소드 이름으로 쿼리 생성, 페이징과 정렬 (feat. 실전! 스프링 데이터 JPA) 하,, 스프링부트를 알게되고 공부하면서 진짜 신세계라고 느끼는 점이 너무 많다.. 미친미친 영한쌤 강의가 진짜 넘넘 실무적인 관점에서도 설명을 잘 해주고 흥미로워서 공부이지만 좀 빠져들어서 잘 보게되었다..! 두둥 사실 아직 강의 중반부이지만 ㅋㅋㅋ 그래도 확실히 순수 JPA 보다 스프링 데이터 JPA가 미친놈이라는 걸 알게 되어서,, 후기 겸 찐다 메소드 이름으로 쿼리 생성 JPA에서 save, find 와 같은 단순 쿼리를 스프링 데이터 JPA 에서 직접적인 구현체 없이 JpaRepository를 extends하면 사용할 수 있게끔 구현했다. 그런데 실무에서는 단순쿼리만 조회할 일이 없다. 조건이 들어간 쿼리는 어떻게 될까? @Repository public class MemberJpaReposito.. 이전 1 다음