• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

SpringDataJpa를 쓸때 수정 기능

23.07.01 22:37 작성 23.08.22 11:02 수정 조회수 314

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

강의 내용으로 게시판 만들기를 병행하고 있습니다.

이번 강의에서 Spring Data Jpa로 변경을 하였는데

게시글 수정과 같은 수정 기능은

인터페이스인 SpringDataJpaMemberRepository에서 작성하나요?

아니면 Service단에서 Repository의 find를 통해서 수정하도록 작성하나요?

SpringDataJpa에서 find, delete는 있는데 수정은 어떻게 이뤄지는지 궁금합니다..d

답변 2

·

답변을 작성해보세요.

1

testd

1

codesweaver님의 프로필

codesweaver

2023.07.03

안녕하세요. dltmdals6718님, 공식 서포터즈 코즈위버입니다.

수정은 서비스에서 리포지토리로 findById(); 등을 통해 불러온 후 이 엔터티의 값을 changeXxx() 등으로 변경만 하면 되며 별도의 리포지토리를 만들지 않아도 됩니다. 그러면 서비스 코드가 끝날 때 (=트랜잭션이 commit 될 때) 엔터티 변경사항을 데이터베이스와 동기화 합니다 :)

감사합니다.

보통 변경은 서비스단에서 코드를 작성하나요?

컨트롤러는 아니겠죠?

codesweaver님의 프로필

codesweaver

2023.07.03

안녕하세요 dltmdals6718님!

네 JPA 데이터는 트랜잭션 안에서 데이터를 변경해야 하며,

보통 어플리케이션 레벨에서 트랜잭션은 Service 코드에서 시작합니다. 영속성 컨텍스트도 보통 이 트랜잭션안에서 유효하나 설정에 따라 Controller까지 영속성 컨텍스트가 살아있을 순 있습니다. (open-in-view 옵션 여부)