우선 이전에 만들었던 MemoRepository를 의존성 주입해주고, @Transactional(readOnley = true)로 성능을 올려주었습니다. 수정이 필요한 로직인 save, update, remove는 @Transactional를 오버로딩 해주었습니다.
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class MemoService {
private final MemoRepository memoRepository;
@Transactional
public Long save(Memo memo) {
memoRepository.save(memo);
return memo.getId();
}
@Transactional
public void update(Long id, String title, String content) {
Memo memo = memoRepository.findOne(id);
memoRepository.update(memo, title, content);
}
public Memo findOne(Long id) {
return memoRepository.findOne(id);
}
public List<Memo> findAll() {
return memoRepository.findAll();
}
@Transactional
public void remove(Long id) {
Memo memo = memoRepository.findOne(id);
memoRepository.remove(memo);
}
//검색 로직
public List<Memo> findSearch(String keyWord) {
if (keyWord == null || keyWord.isEmpty()) return memoRepository.findAll();
else return memoRepository.findSearch(keyWord);
}
}