@PostConstruct protected void init() { final IMap<String, HazelcastEntity> notificationsMap = hazelcastClient.getMap(NOTIFICATIONS_MAP); notificationsMap.addIndex(TIMESTAMP.getField(), true); final IMap<String, HazelcastEntity> commandsMap = hazelcastClient.getMap(COMMANDS_MAP); commandsMap.addIndex(TIMESTAMP.getField(), true); commandsMap.addIndex(LAST_UPDATED.getField(), true); mapsHolder.put(DeviceNotification.class, notificationsMap); mapsHolder.put(DeviceCommand.class, commandsMap); }
final List<Predicate> predicates = new ArrayList<>(); if (id != null) { predicates.add(Predicates.equal(ID.getField(), id)); predicates.add(Predicates.in(DEVICE_IDS.getField(), deviceIds.toArray(new String[deviceIds.size()]))); predicates.add(Predicates.in(NETWORK_IDS.getField(), networkIds.toArray(new Long[networkIds.size()]))); predicates.add(Predicates.in(DEVICE_TYPE_IDS.getField(), deviceTypeIds.toArray(new Long[deviceTypeIds.size()]))); String searchableField = entityClass.equals(DeviceCommand.class) ? COMMAND.getField() : NOTIFICATION.getField(); predicates.add(Predicates.equal(IS_UPDATED.getField(), returnUpdated)); String searchableFieldSt = returnUpdated ? LAST_UPDATED.getField() : TIMESTAMP.getField(); predicates.add(Predicates.greaterThan(searchableFieldSt, timestampSt.getTime())); String searchableFieldEnd = returnUpdated ? LAST_UPDATED.getField() : TIMESTAMP.getField(); predicates.add(Predicates.lessThan(searchableFieldEnd, timestampEnd.getTime())); predicates.add(Predicates.equal(STATUS.getField(), status));