Querydsl с использованием MongoDB

У меня есть следующая конфигурация 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. Есть ли где-нибудь полнофункциональный пример?

Спасибо.


person Pedro Dusso    schedule 30.03.2015    source источник


Ответы (1)


Morphia и Spring Data Mongodb — это альтернативные средства сопоставления объектов для Querydsl Mongodb. Сам Querydsl связан с интеграцией Morphia, для Spring Data Mongodb вам нужно будет обратиться к ссылки на документы для его настройки.

person Timo Westkämper    schedule 30.03.2015
comment
Я закончил использовать этот учебник, который оказался чрезвычайно полезным: petrikainulainen.net/programming/spring-framework/ - person Pedro Dusso; 30.03.2015