스프링부트-JPA-활용-4

존스노우·2021년 12월 28일
0

스프링

목록 보기
16/22

웹 계층 개발

implementation 'org.springframework.boot:spring-boot-devtools'

핫스와핑 기능.


null 이면 더이상 진행 안한다.

요구사항이 간단하면 @entity member 써도됨
허나 실무에서는 복잡하기때문에 memberFormEntity 를 별도로 만들어 줘야됨.
(지저분해지거나, 유지보수도 어려워지고..)
엔티티를 순수하게 유지해주는게 가장 좋다.

상품 등록

상품 수정

변경 감지와 병합

jpa 트랜잭션때 더티 체킹으로 변경된 데이터 자동 업데이트.

준영속 엔티티?

영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다.

(여기서는 itemService.saveItem(book) 에서 수정을 시도하는 Book 객체다. Book 객체는 이미 DB 에 한번 저장되어서 식별자가 존재한다. 이렇게 임의로 만들어낸 엔티티도 기존 식별자를 가지고 있으면 준 영속 엔티티로 볼 수 있다.)

아이디가 셋팅된 객체 (뭔가 ? 아이디가 설정되 데이터베이스에 다녀온?)

준영속 상태 객체.

1.변경감지 객체 기능 사용

2.병합 사용

병합은 준영속 상태의 엔티티를 영속 상태로 변경할 때 사용하는 기능이다.

merge?

위에서 짠 코드랑 동일.

merge 영속성 객체 / item 은 영속성 컨텐츠로 관리안됀 친구

변경 감지 기능은 원하는 속성만 변경 하지만

벼합은 모든 속성이 변경됨 -> 병합시 값이 없으면 Null로 ..교체..

실무에서 는 그래서 변경감지 객체 사용 추천

그러나 실무에선 set 보단 변경되는 메소드를 엔티티를

추가해줘야된다

컨트롤러에서 어설픈 엔티티 만들지 않기

상품 주문

컨트롤러에서 객체를 조회해서 넘겨줘도 되지만

영속성 객체가 아니기 되고 애매해짐.

그냥 Id count등 값을 보낸다.

profile
어제의 나보다 한걸음 더

0개의 댓글