package com.zenquery.model.dao; import com.zenquery.model.QueryVersion; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import java.util.List; /** * Created by willy on 13.04.14. */ public interface QueryVersionDAO { @Cacheable("sql.queryVersions") public QueryVersion find(Integer id); @Cacheable("sql.queryVersions") public QueryVersion findByQueryIdAndVersion(Integer id, Integer version); @Cacheable("sql.queryVersions") public QueryVersion findCurrentByQueryId(Integer id); @Cacheable("sql.queryVersions.lists") public List<QueryVersion> findByQueryId(Integer id); @Cacheable("sql.queryVersions.lists") public List<QueryVersion> findPreviousVersionsByQueryId(Integer id); @Cacheable("sql.queryVersions.lists") public List<QueryVersion> findAll(); @CacheEvict( value = "sql.queryVersions.lists", allEntries = true ) public Number insert(QueryVersion QueryVersion); @CacheEvict( value = { "sql.queryVersions", "sql.queryVersions.lists" }, allEntries = true) public void update(Integer id, QueryVersion QueryVersion); @CacheEvict( value = { "sql.queryVersions", "sql.queryVersions.lists" }, allEntries = true) public void delete(Integer id); @CacheEvict( value = { "sql.queryVersions", "sql.queryVersions.lists" }, allEntries = true) public void deleteByQueryId(Integer id); }