강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

terecal님의 프로필 이미지
terecal

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

변경 감지와 병합(merge)

어떤게 영속 엔티티고 어떤게 준영속 엔티티인가요?

작성

·

211

0

아래에서 Book book 할때 book이 준영속 엔티티 인가요?

어떤게 영속 엔티티고 어떤게 준영속 엔티티인지 잘 구분이 안가는데 좀더 쉽게 설명해주실수 있나요?

@PostMapping("items/{itemId}/edit")
public String updateItem(@PathVariable String itemId, @ModelAttribute("form") BookForm form ) {


    System.out.println("form.getId() ########################################## : "+ form.getId());

    Book book = new Book();
    book.setId(form.getId());
    book.setName(form.getName());
    book.setPrice(form.getPrice());
    book.setStockQuantity(form.getStockQuantity());
    book.setAuthor(form.getAuthor());
    book.setIsbn(form.getIsbn());

    itemService.saveItem(book);

    return "redirect:/items";

}

 

그리고 아래 로직을 변경 감지로 바꿔야 되는건가요?

src\main\java\jpabook\jpashop\repository\ItemRepository.java

// 아이템 등록 함수
public void save(Item item) {
    if(item.getId() == null) {
        System.out.println("아이템 등록 실행 !!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("id 확인 :::::::::::::" + item.getId());
        em.persist(item); // 미등록 아이템일 경우 등록
    } else {
        System.out.println("아이템 수정 실행 !!!!!!!!!!!!!!!!!!!!!!!!");
        em.merge(item); // 이미 등록된 아이템일 경우 수정
    }

퀴즈

회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?

데이터베이스 성능을 최적화하기 위해서

화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서

JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서

코드의 자동 생성 기능을 활용하기 위해서

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. terecal님

다음을 참고해주세요.

https://www.inflearn.com/questions/70393

감사합니다.

terecal님의 프로필 이미지
terecal

작성한 질문수

질문하기