티스토리 뷰

 

Controller -> Service -> Repository -> DB 이 순서대로 데이터가 저장이 되는데

Controller에서 Dto로 객체를 받아와서 Service에서도 MemberDto로 join메서드에 저장이 된 것을 볼 수 있다. 

그러나 Service에서 Repository로 넘기기 위해서는 데이터를 entity 객체로 넘겨줘야 하는 조건이 있다. 

 

 

 

DTO에서 Entity로 변환

 

그래서 MemberEntity 클래스에서 Dto를 entity로 변환하는 과정을 거친 후에

public static MemberEntity toMemberEntity(MemberDto memberDto) {
    MemberEntity memberEntity = new MemberEntity();

    // dto에 있는 값을 entity로 넘기는 과정
    memberEntity.setMemberEmail(memberDto.getMemberEmail());
    memberEntity.setMemberPassword(memberDto.getMemberPassword());
    memberEntity.setMemberName(memberDto.getMemberName());

    return memberEntity;
}

 

 

변환된 것을 memberEntity에 담아 repository의 save라는 메서드에 담아 넘겨준다.

// 1. dto -> entity 변환
// 2. repository의 save 메서드 호출 (조건. entity객체를 넘겨줘야 함)
MemberEntity memberEntity = MemberEntity.toMemberEntity(memberDto);
memberRepository.save(memberEntity); // jpa가 제공해주는 메서드 : save

 

 

 

 

실행을 한 후 회원가입을 진행해보면 repository의 save라는 메서드를 통해 insert문이 실행된 것을 볼 수 있다. 

save 호출을 함으로써 spring data jpa가 insert 쿼리를 만들어준 것이다. 

 

memberDto = MemberDto(id=null, memberEmail=aa, memberPassword=aa, memberName=aa)
Hibernate: insert into member_table (member_email, member_name, member_password) values (?, ?, ?)
memberDto = MemberDto(id=null, memberEmail=aaa@gmail.com, memberPassword=aaa, memberName=user)
Hibernate: insert into member_table (member_email, member_name, member_password) values (?, ?, ?)

 

 

정리

join.html의 input에 입력한 값이 Controller로 넘어와서 Service로 넘겼고, 

Service에서는 두가지 작업을 했는데 

1. Dto 객체를 Entity 객체로 변환하는 작업

2. Entity 객체를 Repository의 save 메서드로 넘기는 작업

(spring data jpa를 사용하기 위해서는 Entity 객체를 넘겨줘야 하는 조건이 있다.)

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함