인프런 커뮤니티 질문&답변
Repository
작성
·
280
0
Repository 관련 질문입니다.
public Item save(Item item) {
item.setId(++sequence);
store.put(item.getId(), item);
return item;
}여기서 save(Item item)인데 따로 Item item = new Item()을 하지 않은 상태에서 저렇게 코드를 작성해도 되는 건가요?
그리고 아래의 코드에서 Member.class가 무엇을 의미하나요??
public Member find(Long id) {
return em.find(Member.class, id);
}답변 1
0
안녕하세요. sjjin님, 공식 서포터즈 OMG입니다.
1.
실제 DB가 아닌, Memory상에서 DB를 본딴 기능을 하는 것이기 때문에,
1라인 구현한 것과 같이 파라미터로 받은 Item의 id값을 sequence보다 1큰 값으로 증가한 id를 세팅하고,
2라인 store(DB를 본딴 map)에 id값에 해당하는, Item을 저장하고 (key - value 쌍)
3라인 id값이 부여된 Item을 반환
하도록 구현해도 이상 없습니다.
실제 DB를 이용하지 않고, 메모리 상에서 DB를 구현한 심플하면서 정직한(?) 구현이라고 생각합니다.
2.
자바에서 class도 클래스 타입으로 존재하며, 객체 생성이 가능합니다.
첫번째 인자로 들어간 Member.class는, Member클래스를 인자로 넘긴 것으로 보시면 됩니다.

getClass()로 클래스 자체의 정보를 읽어서 해당 생성자, 메서드 등의 정보를 불러올 수 있습니다.

감사합니다.




