首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在QClasses中使用querydsl与Spring、Gradle和Idea的未解析符号

在QClasses中使用querydsl与Spring、Gradle和Idea的未解析符号
EN

Stack Overflow用户
提问于 2018-04-10 15:31:01
回答 1查看 996关注 0票数 1

我正在尝试使用querydsl构建一个带有spring引导的API。我设法让QClasses使用Gradle插件生成,但是我无法将这些类作为QClasses使用,所有它们的导入都是未解决的。我是附加有关的文件和屏幕截图,关于事情的外观。

代码语言:javascript
运行
复制
plugins {
    id "java"
    id "eclipse"
    id "idea"
    id "org.springframework.boot" version "2.0.1.RELEASE"
    id "io.spring.dependency-management" version "1.0.5.RELEASE"
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.9"
}

querydsl {
    querydslDefault = true
    jpa = true
}

idea {
    module {
        sourceDirs += file('src/querydsl/')
        generatedSourceDirs += file('src/querydsl/')
    }
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    compile "com.querydsl:querydsl-jpa:4.1.3"
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

这会产生这样的QClasses

正如您所看到的,一个很小的问题是,我不能再打开到querydsl模块的树了。如果我删除sourceDirs += file('src/querydsl/'),我就能够打开树。我不知道这是不是故意的。

我的存储库类如下所示

代码语言:javascript
运行
复制
public interface BotRepository extends PagingAndSortingRepository<Bot, UUID>, QuerydslPredicateExecutor<Bot>, QuerydslBinderCustomizer<QBot> {
}

但我在IntelliJ上看到了这个

这告诉我,即使我在Gradle中添加源代码,项目模块设置也有问题。单击Add dependency on module后,允许导入类。但话又说回来,我犯了个错误

我确信发生此错误是因为QClass无法解析导入。这就是它的样子

这就是我被困的地方。我无法继续使用API。任何帮助都将不胜感激。

P.S.:我知道有一些答案显示了如何设置gradle,我使用这些设置了自己的gradle,并决定使用querydsl gradle插件。因此,我不希望删除插件,转而使用(阅读: querydsl-apt:jpa)

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 18:19:09

我在Eclipse上运行Gradle + Spring + QueryDSL也遇到了一些问题。但是,我注意到了一些重要的问题:

1)在我的笔记本上,它以Java应用程序或来自eclipse的Spring的形式正确运行

2)在我的桌面上,它做了而不是作为Java运行

3)在我的桌面上,它作为Spring正确运行

4)在我的桌面上,它使用命令行正确运行: gradle bootRun

我仍然对第一个观察结果感兴趣.

不管怎样,请找到我用过的build.gradle。希望能帮上忙..。

代码语言:javascript
运行
复制
plugins {
         id 'org.springframework.boot' version '1.5.8.RELEASE'
         id 'com.ewerk.gradle.plugins.querydsl' version '1.0.9'
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

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

ext {
     querydslVersion = '4.1.4'
}

wrapper {
         gradleVersion = '4.3.1'
}

repositories {
              mavenCentral()
              maven { url "https://plugins.gradle.org/m2/" }
}

dependencies {
              compile('org.springframework.boot:spring-boot-starter')
              compile('org.springframework.boot:spring-boot-starter-actuator')
              compile('org.springframework.boot:spring-boot-starter-data-mongodb')
              compile('org.springframework.boot:spring-boot-starter-thymeleaf')
              compile('org.springframework.boot:spring-boot-starter-web')

              compile("com.querydsl:querydsl-mongodb:$querydslVersion")

              testCompile('org.springframework.boot:spring-boot-starter-test')
}

querydsl {
          springDataMongo = true
          querydslSourcesDir = 'src/generated-sources/java'
          library = "com.querydsl:querydsl-apt:$querydslVersion"
         }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49757622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档