package net.pechorina.kontempl.service; import java.util.List; import net.pechorina.kontempl.data.Site; import net.pechorina.kontempl.repos.SiteRepo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class SiteService { static final Logger logger = LoggerFactory.getLogger(SiteService.class); @Autowired private SiteRepo siteRepo; @Autowired private Environment env; @Transactional public List<Site> listAll() { return siteRepo.findAll(); } @Transactional public Site findByName(String n) { return siteRepo.findByName(n); } @Transactional @Cacheable("siteCache") public Site findByNameCached(String n) { return siteRepo.findByName(n); } @Transactional public Site findById(Integer id) { return siteRepo.findOne(id); } @Transactional @CacheEvict(value = {"siteCache"}, allEntries = true) public Site save(Site s) { return siteRepo.saveAndFlush(s); } @Transactional @CacheEvict(value = {"siteCache"}, allEntries = true) public void delete(Site s) { siteRepo.delete(s); } @Transactional @CacheEvict(value = {"siteCache"}, allEntries = true) public void delete(Integer id) { siteRepo.delete(id); } }