I am using Spring3.1 in standalone Env.
I am trying to cache my entries. So in 3.1 I can use @Cacheable this way:
@Cacheable("client")
@Override
public ClientDTO getClientByLogin(String login) throws FixException
{
ClientDTO client = null;
try
{
client = (ClientDTO) jdbcTemplate.queryForObject(GET_CLIENT_BY_LOGIN_STATEMENT, new Object[]
{ login }, new ClientDTO());
}
catch (EmptyResultDataAccessException e)
{
log.error("Client login not exist in database. login=" + login);
}
if (client == null)
{
throw new FixException("Return null from DB when executing getClientByLogin(), login=" + login);
}
return client;
}
now each time i invoke getClient it will look first in it's cache respositry.
If I want to retrieve the caching list in order to iterate on it. How i do it?
thanks.
I found a solution:
private ClientDTO getClientDTOByClientId(Integer clientId)
{
ClientDTO clientDTO = null;
Cache clientCache = null;
try
{
clientCache = ehCacheCacheManager.getCache("client");
clientDTO = null;
if (clientCache != null)
{
clientDTO = (ClientDTO) clientCache.get(clientId);
}
else
{
log.error("clientCache is null");
}
}
catch (Exception e)
{
log.error("Couldnt retrieve client from cache. clientId=" + clientId);
}
return clientDTO;
}