首页 文章

Querydsl mongodb gradle springboot问题

提问于
浏览
1

我试图在我的项目中使用querydsl,就像在 Spring 季启动文档中描述的那样,springboot-mongodb-look at 5.3.4以便我可以这样做,

QPerson person = new QPerson("person");
List<Person> result = repository.findAll(person.address.zipCode.eq("C0123"));

Page<Person> page = repository.findAll(person.lastname.contains("a"), 
                                       new PageRequest(0, 2, Direction.ASC, "lastname"));

我正在使用gradle build和mongodb作为数据库 .

我的问题是,在querydsl文档中,只提供了maven集成 . querydsl document link

<dependency>
  <groupId>com.querydsl</groupId>
  <artifactId>querydsl-apt</artifactId>
  <version>${querydsl.version}</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>com.querydsl</groupId>
  <artifactId>querydsl-mongodb</artifactId>
  <version>${querydsl.version}</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.6.1</version>
</dependency>

现在,配置Maven APT插件,该插件生成Querydsl使用的查询类型:

<project>
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>com.mysema.maven</groupId>
        <artifactId>apt-maven-plugin</artifactId>
        <version>1.1.3</version>
        <executions>
          <execution>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <outputDirectory>target/generated-sources/java</outputDirectory>
              <processor>com.querydsl.apt.morphia.MorphiaAnnotationProcessor</processor>
            </configuration>
          </execution>
        </executions>
      </plugin>
    ...
    </plugins>
  </build>
</project>

可以使用gradle集成吗?如果是,请提供解决方案 .

2 回答

  • 0

    看看querydsl-with-gradle-and-ideaConfiguring QueryDSL for Spring Data and MongoDB with Gradle

    他们使用:

    compile "com.mysema.querydsl:querydsl-apt:3.6.3:jpa"
    compile "com.querydsl.apt:querydsl-mongodb:4.0.9"
    

    github corneil's spring-data-demo的完整示例,详情请点这里:QueryDSL for Mongo with Spring and gradle

  • 0

    对我来说帮助了这篇文章add Querydslsupport

    接下来添加到您的gradle文件:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath "gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.9"
        }
    }
    
    apply plugin: 'com.ewerk.gradle.plugins.querydsl'
    
    sourceSets {
        main {
            java {
                srcDir "$buildDir/generated/source/app/main"
            }
        }
    }
    
    dependencies {
        compile "com.querydsl:querydsl-mongodb:4.1.4"
        compileOnly "com.querydsl:querydsl-apt:4.1.4"
    }
    
    querydsl {
        springDataMongo = true
        querydslSourcesDir = "$buildDir/generated/source/app/main"
    }
    

    之后,您应该将 @Document 注释添加到您的实体类中并进行构建 . 您将在querydslSourcesDir中指定的文件夹下看到生成的Q文件 .

相关问题