package com.zenquery.model.dao;
import com.zenquery.model.Query;
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 QueryDAO {
@Cacheable("sql.queries")
public Query find(Integer id);
@Cacheable("sql.queries")
public Query findByKey(String key);
@Cacheable("sql.queries.lists")
public List<Query> findByDatabaseConnectionId(Integer id);
@Cacheable("sql.queries.lists")
public List<Query> findAll();
@CacheEvict(
value = "sql.queries.lists",
allEntries = true
)
public Number insert(Query query);
@CacheEvict(
value = {
"sql.queries",
"sql.queries.lists"
},
allEntries = true)
public void update(Integer id, Query query);
@CacheEvict(
value = {
"sql.queries",
"sql.queries.lists"
},
allEntries = true)
public void delete(Integer id);
@CacheEvict(
value = {
"sql.queries",
"sql.queries.lists"
},
allEntries = true)
public void deleteByDatabaseConnectionId(Integer id);
}