package org.infinispan.spring.provider.sample.service; import org.infinispan.spring.provider.sample.dao.BaseBookDao; import org.infinispan.spring.provider.sample.entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * @author Matej Cimbora (mcimbora@redhat.com) */ @Transactional @Service public class CachedTransactionBookServiceImpl implements CachedTransactionBookService { @Autowired private BaseBookDao baseDao; @CachePut(value = "books", key = "#book.id") @Override public Book createBookNonTransactionalCache(Book book) { return baseDao.createBook(book); } @CachePut(value = "booksTransactional", key = "#book.id") @Override public Book createBookTransactionalCache(Book book) { return baseDao.createBook(book); } @Cacheable(value = "books") @Override public Book findBookNonTransactionalCache(Integer id) { return baseDao.findBook(id); } @Cacheable(value = "booksTransactional") @Override public Book findBookTransactionalCache(Integer id) { return baseDao.findBook(id); } @Override public Book findBookCacheDisabled(Integer id) { return baseDao.findBook(id); } }