변경 감지와 병합
168
작성한 질문수 3
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
변경감지와 병합 강의에서 서비스단에도 set 을 되도록 쓰지말고 change 같은거 쓰라고 하셨는데 그럼 change 라는 메서드는 어디에 만드는게 좋나요?? 리포지토리 or 서비스 or 도메인의 Item 안에 ?? 어디인가요
답변 1
1
안녕하세요, 이현송 님. 공식 서포터즈 codesweaver 입니다.
.
change 및 관계메서드 등은 엔티티에 작성하시면 됩니다.
.
감사합니다.
0
안녕하세요 이현송님!
혹시 수업을 어디까지 학습하신건지 제가 알 수 없지만,
도메인 분석 설계 챕터의 - '엔티티 클래스 개발1' 을 확인하시면 엔티티를 작성하는 내용이 나옵니다.
이 엔티티 부분은 개발자가 직접 작성해야 합니다.
엔티티 매니저는 말씀하신 것처럼 사용자가 직접 수정하지는 않습니다.
감사합니다.
0
오.. 감사합니다 도메인 폴더에 있는게 거의 엔티티라는 @하고 어노테이션이 작성이 되어있군요.. 배웠습니다..
1. public void save(Item item) {
if (item.getId() == null) {
em.persist(item);
} else {
em.merge(item);
}
}
2. public Item findOne(Long id) {
return em.find(Item.class, id);
}
그럼 1번 코드에서 em 은 괄호안에 item을 바로쓰는데 em.find 안에는 .class 까지 붙이는 이유가먼가요??
그리고 find 안에 id 값가지 넘겨주는거는 id 를 찾으려고 넘겨주는거죠??
1
안녕하세요!
엔티티 매니저에는 다양한 객체가 저장될 수 있습니다. 가령 Item, Member 등이요.
그래서 이를 저장하거나 찾을때 이를 클래스별로 구분할 필요가 있습니다.
.
svae()의 경우 Item 클래스의 인스턴스인 item 을 그대로 넣어주기에 엔티티 매니저 입장에서는 얘가 Item 클래스라는걸 알 수 있습니다.
.
반면 find()의 경우 Long id 라는 롱 타입의 숫자만을 가지고 원하는 객체를 찾아야 합니다. 그럼 이 아이디가 Item의 아이디인지 Member의 아이디인지 알 수 없겠지요? 그래서 어떤 클래스의 id를 말하는건지 모두 말해주어야 하는 것입니다.
.
가령 현송님이 커다란 자루에 빨간 공과 빨간 시계를 가지고 있습니다.
그 때 친구가 자루에 있는 '빨간거' 꺼내 줘. 라고 하면 현송님은 빨간것 중에 공을 말하는 건지 시계를 말하는건지 헷갈립니다.
그래서 친구나 '공, 빨간거' 꺼내줘 라고 해야 비로소 제대로 된 물건을 꺼낼 수 있습니다.
.
감사합니다.
OrderServiceTest 상문주문 테스트 시 update 쿼리 문의
0
40
1
sdk 설정 오류
0
83
2
오탈자 - @Transactional
0
76
1
src/test/resources 테스트 경로 문제
0
75
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
74
1
MemberRepositoryTest 실행오류
0
98
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
204
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
161
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
61
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
90
1
기본 생성자
0
69
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
109
1
멤버서비스테스트 부분에서 막힙니다.
0
188
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
130
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
134
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
126
1
24분 27초 연관관계 편의 메서드 위치
0
120
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
120
2
빌드 툴, Gradle
0
73
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
85
2
Repository에서 EntityManager 주입 방식 차이
0
100
1
롬복과 사용자 정의 setter 메서드
0
80
1
주문 목록 조회 fetch join 질문드립니다
0
93
1
dirty checking 질문드립니다.
0
91
1





