java - Querydsl 与 MongoDB 的使用

标签 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 对象应该是注入(inject) Mongo 实例吗?那么 Morphia 对象又如何呢? Other tutorials我发现在线创建实例为:

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

我想在 Spring Data MongoDB 存储库 中构建查询。某处有功能齐全的示例吗?

谢谢。

最佳答案

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

关于java - Querydsl 与 MongoDB 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349303/

相关文章:

java - 泛型中的有界类型无法扩展另一个有界类型

java - Spring Reactive 测试用例启动 Netty 服务器失败

javascript - MongoDB 第一次不会返回正确的数据

spring - 当 getHibernateTemplate() 发生提交时

使用 MongoDB 驱动程序时出现 java.lang.NoClassDefFoundError

arrays - MongoDB:查询嵌套数组中的值?

java - 比较两个映射并删除所有具有相同键或相同值的元素

java - 如何从父类(super class)继承接口(interface)

java - 在 Java Applet 中运行 OrientDB

java - 如何使用 Spring 正确接收 urlencoded 表单主体