使用MongoDB的Querydsl

时间:2015-03-30 14:47:08

标签: java spring mongodb querydsl

我在Java Spring项目中有以下Mongo配置:

    @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模块开始构建查询,documentation表示:

Morphia morphia;
Datastore datastore;
// ...
QUser user = new QUser("user");
MorphiaQuery<User> query = new MorphiaQuery<User>(morphia, datastore, user);

我对如何创建MorphiaQuery类的实例没有任何想法。 Datastore对象应该是一个注入Mongo实例吗? Morphia对象怎么样? Other tutorials我发现在线创建实例为:

Morphia morphia = new Morphia()
        .map(Book.class, Author.class, Tag.class);

我想在Spring Data MongoDB repository内构建查询。在某个地方有一个功能齐全的例子吗?

感谢。

1 个答案:

答案 0 :(得分:1)

Morphia和Spring Data Mongodb是Querydsl Mongodb的替代对象映射器。 Querydsl本身与Morphia集成捆绑在一起,对于Spring Data Mongodb,您需要参考references docs进行设置。