У меня есть следующая конфигурация Mongo в проекте Java Spring:
@Configuration
public class MongoConfiguration {
public static int allocateRandomPort() {
try {
ServerSocket server = new ServerSocket(0);
int port = server.getLocalPort();
server.close();
return port;
} catch (IOException e) {
throw new RuntimeException("Failed to acquire a random free port", e);
}
}
@Bean
public Mongo mongo() throws IOException {
System.setProperty("DB.TRACE", "true");
return new EmbeddedMongoBuilder()
.version("2.6.0")
.bindIp("127.0.0.1")
.port(allocateRandomPort())
.build();
}
}
Чтобы начать создавать запросы с помощью модуля Querydsl Mongodb, документация говорит что:
Morphia morphia;
Datastore datastore;
// ...
QUser user = new QUser("user");
MorphiaQuery<User> query = new MorphiaQuery<User>(morphia, datastore, user);
Я понятия не имею, как создать экземпляр класса MorphiaQuery. Должен ли объект Datastore
быть инъекционным экземпляром Mongo? А как насчет объекта Morphia
? Другие руководства Я нашел в Интернете создание экземпляра как:
Morphia morphia = new Morphia()
.map(Book.class, Author.class, Tag.class);
Я хотел бы построить запросы внутри файла Spring Data MongoDB repository
. Есть ли где-нибудь полнофункциональный пример?
Спасибо.