@Nullable @Override public <T> T findAndRemove(Query query, Class<T> entityClass) { return findAndRemove(query, entityClass, operations.determineCollectionName(entityClass)); }
@Nullable @Override public <T> T findAndRemove(Query query, Class<T> entityClass) { return findAndRemove(query, entityClass, operations.determineCollectionName(entityClass)); }
@Override public Message<?> removeMessage(UUID id) { Assert.notNull(id, "'id' must not be null"); MessageWrapper messageWrapper = this.template.findAndRemove(whereMessageIdIs(id), MessageWrapper.class, this.collectionName); return (messageWrapper != null ? messageWrapper.getMessage() : null); }
@Override public Message<?> removeMessage(UUID id) { Assert.notNull(id, "'id' must not be null"); Query query = Query.query(Criteria.where(MessageDocumentFields.MESSAGE_ID).is(id)); MessageDocument document = this.mongoTemplate.findAndRemove(query, MessageDocument.class, this.collectionName); return (document != null) ? document.getMessage() : null; }
/** * Remove the metadata entry for the provided {@code key} and return its {@code value}, if any, * using {@code findAndRemove} MongoDB operation. * @param key the metadata entry key * @return the metadata entry value or null if doesn't exist. * @see MongoTemplate#findAndRemove(Query, Class, String) */ @Override public String remove(String key) { Assert.hasText(key, "'key' must not be empty."); Query query = new Query(Criteria.where(ID_FIELD).is(key)); query.fields().exclude(ID_FIELD); @SuppressWarnings("unchecked") Map<String, String> result = this.template.findAndRemove(query, Map.class, this.collectionName); return result == null ? null : result.get(VALUE); }
@Override public Message<?> pollMessageFromGroup(final Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Query query = whereGroupIdIs(groupId).with(Sort.by(GROUP_UPDATE_TIMESTAMP_KEY, SEQUENCE)); MessageWrapper messageWrapper = this.template.findAndRemove(query, MessageWrapper.class, this.collectionName); Message<?> message = null; if (messageWrapper != null) { message = messageWrapper.getMessage(); } updateGroup(groupId, lastModifiedUpdate()); return message; }
@Override public Message<?> pollMessageFromGroup(final Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Sort sort = Sort.by(MessageDocumentFields.LAST_MODIFIED_TIME, MessageDocumentFields.SEQUENCE); Query query = groupIdQuery(groupId).with(sort); MessageDocument document = mongoTemplate.findAndRemove(query, MessageDocument.class, collectionName); Message<?> message = null; if (document != null) { message = document.getMessage(); updateGroup(groupId, lastModifiedUpdate()); } return message; }
@Override public Message<?> pollMessageFromGroup(Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Sort sort = Sort.by(MessageDocumentFields.LAST_MODIFIED_TIME, MessageDocumentFields.SEQUENCE); if (this.priorityEnabled) { sort = Sort.by(Sort.Direction.DESC, MessageDocumentFields.PRIORITY).and(sort); } Query query = groupIdQuery(groupId).with(sort); MessageDocument document = this.mongoTemplate.findAndRemove(query, MessageDocument.class, this.collectionName); Message<?> message = null; if (document != null) { message = document.getMessage(); } return message; }
@Repository public class AppointmentCustomRepository { @Autowired MongoTemplate mongoTemplate; public Appointment getAppointmentAndDelete(String id) { return mongoTemplate.findAndRemove(Query.query(Criteria.where("id").is(id)), Appointment.class); } }
@Override public Message<?> removeMessage(UUID id) { Assert.notNull(id, "'id' must not be null"); MessageWrapper messageWrapper = this.template.findAndRemove(whereMessageIdIs(id), MessageWrapper.class, this.collectionName); return (messageWrapper != null ? messageWrapper.getMessage() : null); }
@Override public Message<?> removeMessage(UUID id) { Assert.notNull(id, "'id' must not be null"); Query query = Query.query(Criteria.where(MessageDocumentFields.MESSAGE_ID).is(id)); MessageDocument document = this.mongoTemplate.findAndRemove(query, MessageDocument.class, this.collectionName); return (document != null) ? document.getMessage() : null; }
/** * Remove the metadata entry for the provided {@code key} and return its {@code value}, if any, * using {@code findAndRemove} MongoDB operation. * @param key the metadata entry key * @return the metadata entry value or null if doesn't exist. * @see MongoTemplate#findAndRemove(Query, Class, String) */ @Override public String remove(String key) { Assert.hasText(key, "'key' must not be empty."); Query query = new Query(Criteria.where(ID_FIELD).is(key)); query.fields().exclude(ID_FIELD); @SuppressWarnings("unchecked") Map<String, String> result = this.template.findAndRemove(query, Map.class, this.collectionName); return result == null ? null : result.get(VALUE); }
@Override public Message<?> pollMessageFromGroup(final Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Sort sort = Sort.by(MessageDocumentFields.LAST_MODIFIED_TIME, MessageDocumentFields.SEQUENCE); Query query = groupIdQuery(groupId).with(sort); MessageDocument document = mongoTemplate.findAndRemove(query, MessageDocument.class, collectionName); Message<?> message = null; if (document != null) { message = document.getMessage(); updateGroup(groupId, lastModifiedUpdate()); } return message; }
@Override public Message<?> pollMessageFromGroup(final Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Query query = whereGroupIdIs(groupId).with(Sort.by(GROUP_UPDATE_TIMESTAMP_KEY, SEQUENCE)); MessageWrapper messageWrapper = this.template.findAndRemove(query, MessageWrapper.class, this.collectionName); Message<?> message = null; if (messageWrapper != null) { message = messageWrapper.getMessage(); } updateGroup(groupId, lastModifiedUpdate()); return message; }
@Override public Message<?> pollMessageFromGroup(Object groupId) { Assert.notNull(groupId, "'groupId' must not be null"); Sort sort = Sort.by(MessageDocumentFields.LAST_MODIFIED_TIME, MessageDocumentFields.SEQUENCE); if (this.priorityEnabled) { sort = Sort.by(Sort.Direction.DESC, MessageDocumentFields.PRIORITY).and(sort); } Query query = groupIdQuery(groupId).with(sort); MessageDocument document = this.mongoTemplate.findAndRemove(query, MessageDocument.class, this.collectionName); Message<?> message = null; if (document != null) { message = document.getMessage(); } return message; }