• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

OSIV 관련하여 질문드립니다!

23.03.12 18:10 작성 조회수 328

0

User user = userQueryService.findById(userId);
postService.createPost(user)

OSIV를 끈채로 특정 유저가 게시글을 작성하는 로직을 Command와 Query를 분리하여 위와 같이 컨트롤러에 작성하고자 합니다.

OSIV가 꺼져있기에 user는 준영속상태로, createPost 트랜잭션 안에서 user를 변경하지 않고 post 생성에만 사용한다면 위와 같이 사용하는게 맞는지 궁금합니다!

만약 createPost에서 user를 변경하는 상황이 발생한다면, 예외가 발생하는지도 궁금합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요. clllickme님

createPost 트랜잭션 안에서 준영속 상태인 User를 사용할 수 있습니다.

단 준영속 상태이기 때문에 User의 데이터를 변경해도 아무런 변화가 발생하지 않습니다.

이런 경우는 Post -> User를 참조할 때 참조값을 넣는 정도로 사용할 수 있습니다.

User의 데이터도 변경해야 한다면 트랜잭션 안에서 User를 다시 조회하는 것을 권장합니다.

감사합니다.