Querydsl: Cómo consultar dsl con spring-data-mongodb y gradle

Creado en 21 jun. 2020  ·  3Comentarios  ·  Fuente: querydsl/querydsl

No puedo configurar gradle para generar los tipos de consulta para Querydsl. Siguiendo consejos como el # 2444, mi configuración es la siguiente:

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'

    compile 'com.querydsl:querydsl-mongodb:4.3.1'
    annotationProcessor 'com.querydsl:querydsl-apt:4.3.1:morphia'
    annotationProcessor 'org.springframework.boot:spring-boot-starter-data-mongodb'
}

Los tipos de consulta no se generan.
Versión de Gradle: 6.4.1

Desafortunadamente, la documentación proporciona solo una configuración para maven y todas las demás guías en la web parecen estar obsoletas.

Repositorio de muestra: https://github.com/viktorgt/spring-mongo-querydsl

question

Todos 3 comentarios

Hola @viktorgt , intente esto, puedo generar las Q-Classes con esto ... espero que le ayude y que también se esté ejecutando para mí ... Tenga en cuenta que no estoy usando las anotaciones Morphia y la dependencia, en su lugar estoy usando @com.querydsl.core.annotations.QueryEntity y en cuanto a su build.gradle

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

dependencies {
   //your general spring data and other spring dependencies
   compileOnly 'com.querydsl:querydsl-apt'
   compile 'com.querydsl:querydsl-mongodb:4.3.1'
   compile 'com.querydsl:querydsl-core'

   annotationProcessor ('com.querydsl:querydsl-apt:4.3.1:general', 'javax.annotation:javax.annotation-api')
}

//Your path can be as per your choice of source directory for the Q-Classes mine is /src/main/generated/

def queryDslOutput = file(new File(projectDir, '/src/main/generated/'))
sourceSets {
    generated {
        java {
            srcDir queryDslOutput
        }
    }
}

compileJava {
    options.compilerArgs << '-s'
    options.compilerArgs << "$projectDir/src/main/generated/"

    doFirst {
        file(new File(projectDir, '/src/main/generated/')).mkdirs();
    }
}

Editar: tampoco estoy usando las anotaciones JPA o Spring-Data-JPA
Versión de Gradle: 6.5

PD: He editado este comentario muchas veces, porque soy nuevo en Github.

@ somudas93 gracias. Este realmente funciona 👍

También podríamos agregar delete(files("${projectDir}/src/main/generated/")) en la parte doFirst de compileJava , por lo que los archivos antiguos se anularán cuando haya cambios.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

heesuk-ahn picture heesuk-ahn  ·  5Comentarios

mjungsbluth picture mjungsbluth  ·  6Comentarios

intuitiveminds picture intuitiveminds  ·  8Comentarios

timowest picture timowest  ·  7Comentarios

devcken picture devcken  ·  6Comentarios