Я пытаюсь реализовать кэширование с помощью hazelcast.
Вот мой код. Мой вопрос заключается в том, что при выполнении findAllGames () я кэширую все игры в "gamesCache", а когда выполняется findGameByTypes (), я хочу, чтобы он запрашивал "gamesCache" вместо обращения к базе данных и возвращал результат.
@Cacheable(cacheNames = "gamesCache", key = "#root.methodName")
public List<Game> findAllGames() {
List<Game> games = gamesDao.getAllGames(); // dao call
//some database call
}
public List<Game> findGameByTypes(GameType gameType) {
List<Game> games = gamesDao.getGamesByType(gameType); // dao call
//some logic
}
public class Game implements Serializable {
private long gameId;
private String gameName;
private GameType gameType;
}
public class GameType implements Serializable {
private long gameId;
private String gameGenre;
private Boolean status;
}
findAllGames () всегда вызывается первым, чем findGamesByTypes ().
Теперь кешированная карта генерируется с ключом findAllGames и списком игр в качестве значения. Есть ли способ сделать запрос карты, используя атрибуты GameType в качестве критерия.
Есть ли способ реализовать это? Я открыт и для других предложений.