Querydsl: Comment interrogerdsl avec spring-data-mongodb et gradle

Créé le 21 juin 2020  ·  3Commentaires  ·  Source: querydsl/querydsl

Je ne parviens pas à configurer gradle pour générer les types de requêtes pour Querydsl. En suivant des conseils comme #2444, ma configuration ressemble à ceci :

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'
}

Les types de requête ne sont pas générés.
Version graduée : 6.4.1

Malheureusement, la documentation ne fournit qu'une configuration pour maven et tous les autres guides sur le Web semblent être obsolètes.

Exemple de référentiel : https://github.com/viktorgt/spring-mongo-querydsl

question

Tous les 3 commentaires

Salut @viktorgt s'il vous plaît essayez ceci, je suis capable de générer les Q-Classes avec ça .. j'espère que cela vous aidera et que cela fonctionnera également pour moi .. Remarque je n'utilise pas les annotations Morphia et la dépendance, à la place je suis en utilisant @com.querydsl.core.annotations.QueryEntity et comme pour votre 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();
    }
}

Edit: je n'utilise pas non plus les annotations JPA ou le Spring-Data-JPA
Version Gradle: 6.5

PS : J'ai édité ce commentaire plusieurs fois, car je suis nouveau sur Github.

@somudas93 merci. Celui-ci fonctionne réellement

Nous pourrions également ajouter delete(files("${projectDir}/src/main/generated/")) dans la partie doFirst du compileJava , ainsi les anciens fichiers seront écrasés, en cas de modifications.

Cette page vous a été utile?
0 / 5 - 0 notes