public StringConverter( MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) { super(new DefaultDbRefResolver(mongoDbFactory), mappingContext); }
@Override public Object resolveDbRef(MongoPersistentProperty property, @Nullable DBRef dbref, DbRefResolverCallback callback, DbRefProxyHandler handler) { Assert.notNull(property, "Property must not be null!"); Assert.notNull(callback, "Callback must not be null!"); Assert.notNull(handler, "Handler must not be null!"); if (isLazyDbRef(property)) { return createLazyLoadingProxy(property, dbref, callback, handler); } return callback.resolve(property); }
@Override public List<Document> bulkFetch(List<DBRef> refs) { Assert.notNull(mongoDbFactory, "Factory must not be null!"); Assert.notNull(refs, "DBRef to fetch must not be null!"); if (refs.isEmpty()) { return Collections.emptyList(); } String collection = refs.iterator().next().getCollectionName(); List<Object> ids = new ArrayList<>(refs.size()); for (DBRef ref : refs) { if (!collection.equals(ref.getCollectionName())) { throw new InvalidDataAccessApiUsageException( "DBRefs must all target the same collection for bulk fetch operation."); } ids.add(ref.getId()); } List<Document> result = getCollection(refs.iterator().next()) // .find(new Document("_id", new Document("$in", ids))) // .into(new ArrayList<>()); return ids.stream() // .flatMap(id -> documentWithId(id, result)) // .collect(Collectors.toList()); }
@Override public Document fetch(DBRef dbRef) { StringUtils.hasText(dbRef.getDatabaseName()); return getCollection(dbRef).find(Filters.eq("_id", dbRef.getId())).first(); }
@Override public Document fetch(DBRef dbRef) { StringUtils.hasText(dbRef.getDatabaseName()); return getCollection(dbRef).find(Filters.eq("_id", dbRef.getId())).first(); }
/** * Creates a new {@link MappingMongoConverter} given the new {@link MongoDbFactory} and {@link MappingContext}. * * @deprecated use the constructor taking a {@link DbRefResolver} instead. * @param mongoDbFactory must not be {@literal null}. * @param mappingContext must not be {@literal null}. */ @Deprecated public MappingMongoConverter(MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) { this(new DefaultDbRefResolver(mongoDbFactory), mappingContext); }
@Override public Object resolveDbRef(MongoPersistentProperty property, @Nullable DBRef dbref, DbRefResolverCallback callback, DbRefProxyHandler handler) { Assert.notNull(property, "Property must not be null!"); Assert.notNull(callback, "Callback must not be null!"); Assert.notNull(handler, "Handler must not be null!"); if (isLazyDbRef(property)) { return createLazyLoadingProxy(property, dbref, callback, handler); } return callback.resolve(property); }
@Override public List<Document> bulkFetch(List<DBRef> refs) { Assert.notNull(mongoDbFactory, "Factory must not be null!"); Assert.notNull(refs, "DBRef to fetch must not be null!"); if (refs.isEmpty()) { return Collections.emptyList(); } String collection = refs.iterator().next().getCollectionName(); List<Object> ids = new ArrayList<>(refs.size()); for (DBRef ref : refs) { if (!collection.equals(ref.getCollectionName())) { throw new InvalidDataAccessApiUsageException( "DBRefs must all target the same collection for bulk fetch operation."); } ids.add(ref.getId()); } List<Document> result = getCollection(refs.iterator().next()) // .find(new Document("_id", new Document("$in", ids))) // .into(new ArrayList<>()); return ids.stream() // .flatMap(id -> documentWithId(id, result)) // .collect(Collectors.toList()); }
/** * Creates a {@link MappingMongoConverter} using the configured {@link #mongoDbFactory()} and * {@link #mongoMappingContext()}. Will get {@link #customConversions()} applied. * * @see #customConversions() * @see #mongoMappingContext() * @see #mongoDbFactory() * @return * @throws Exception */ @Bean public MappingMongoConverter mappingMongoConverter() throws Exception { DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory()); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()); converter.setCustomConversions(customConversions()); return converter; }
DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
/** * Creates a {@link MappingMongoConverter} using the configured {@link #mongoDbFactory()} and * {@link #mongoMappingContext()}. Will get {@link #customConversions()} applied. * * @see #customConversions() * @see #mongoMappingContext() * @see #mongoDbFactory() * @return * @throws Exception */ @Bean public MappingMongoConverter mappingMongoConverter() throws Exception { DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory()); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()); converter.setCustomConversions(customConversions()); return converter; } }
private static MongoConverter getDefaultMongoConverter(MongoDbFactory factory) { DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory); MongoCustomConversions conversions = new MongoCustomConversions(Collections.emptyList()); MongoMappingContext mappingContext = new MongoMappingContext(); mappingContext.setSimpleTypeHolder(conversions.getSimpleTypeHolder()); mappingContext.afterPropertiesSet(); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mappingContext); converter.setCustomConversions(conversions); converter.afterPropertiesSet(); return converter; }
MessageReadingMongoConverter(MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) { super(new DefaultDbRefResolver(mongoDbFactory), mappingContext); }
/** * Creates a new {@link MappingMongoConverter} given the new {@link MongoDbFactory} and {@link MappingContext}. * * @deprecated use the constructor taking a {@link DbRefResolver} instead. * @param mongoDbFactory must not be {@literal null}. * @param mappingContext must not be {@literal null}. */ @Deprecated public MappingMongoConverter(MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) { this(new DefaultDbRefResolver(mongoDbFactory), mappingContext); }
public TestMongoConverter( MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) { super(new DefaultDbRefResolver(mongoDbFactory), mappingContext); }
public MongoDbOutboundGateway(MongoDbFactory mongoDbFactory) { this(mongoDbFactory, new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory), new MongoMappingContext())); }
/** * Creates a {@link MappingMongoConverter} using the configured {@link #mongoDbFactory()} and * {@link #mongoMappingContext()}. Will get {@link #customConversions()} applied. * * @see #customConversions() * @see #mongoMappingContext() * @see #mongoDbFactory() * @return * @throws Exception */ @Bean public MappingMongoConverter mappingMongoConverter() throws Exception { DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory()); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()); converter.setCustomConversions(customConversions()); return converter; }
/** * Creates a {@link MappingMongoConverter} using the configured {@link #mongoDbFactory()} and * {@link #mongoMappingContext()}. Will get {@link #customConversions()} applied. * * @see #customConversions() * @see #mongoMappingContext() * @see #mongoDbFactory() * @return * @throws Exception */ @Bean public MappingMongoConverter mappingMongoConverter() throws Exception { DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory()); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()); converter.setCustomConversions(customConversions()); return converter; } }
DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
private static MongoConverter getDefaultMongoConverter(MongoDbFactory factory) { DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory); MongoCustomConversions conversions = new MongoCustomConversions(Collections.emptyList()); MongoMappingContext mappingContext = new MongoMappingContext(); mappingContext.setSimpleTypeHolder(conversions.getSimpleTypeHolder()); mappingContext.afterPropertiesSet(); MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mappingContext); converter.setCustomConversions(conversions); converter.afterPropertiesSet(); return converter; }