#80 Ревью Spring-сервиса Dummy

Компании:
ОТР
Темы:
SpringSpring Data JPAТранзакцииКод ревью

Сделать ревью:

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.EntityManager;
import java.util.HashMap;
import java.util.Map;

@Service
@RequiredArgsConstructor
public class DummyService
{
    @Getter
    @Setter
    private static class Item
    {
        private String id;
    }

    private final EntityManager em;

    private Map<String, Item> cache = new HashMap<>();

    @Transactional
    public Item getItem(String id)
    {
        return cache.get(id);
    }

    public void addItem(Item item)
    {
        if (!cache.containsKey(item.getId()))
        {
            addItemInternal(item);
        }
    }

    @Transactional
    private void addItemInternal(Item item)
    {
        cache.put(item.getId(), em.merge(item));
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти