首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java记录- QueryDSL

Java记录- QueryDSL
EN

Stack Overflow用户
提问于 2022-02-10 10:41:43
回答 1查看 238关注 0票数 2

我想将Java与mongoDB & querydsl结合使用。然而,似乎querydsl APT引起了一个问题。当我试图处理简单代码(一个记录和一个普通类)时:

代码语言:javascript
复制
@QueryEntity
public class TestClass implements Persistable<UUID> {
    @Override
    public UUID getId() {
        return null;
    }

    @Override
    public boolean isNew() {
        return false;
    }
}

@QueryEntity
public record TestRecord() implements Persistable<UUID> {
    @Override
    public UUID getId() {
        return null;
    }

    @Override
    public boolean isNew() {
        return false;
    }
}

结果是:

代码语言:javascript
复制
/**
 * QTestClass is a Querydsl query type for TestClass
 */
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QTestClass extends EntityPathBase<TestClass> {

    private static final long serialVersionUID = -1582647675L;

    public static final QTestClass testClass = new QTestClass("testClass");

    public final ComparablePath<java.util.UUID> id = createComparable("id", java.util.UUID.class);

    public final BooleanPath new$ = createBoolean("new");

    public QTestClass(String variable) {
        super(TestClass.class, forVariable(variable));
    }

    public QTestClass(Path<? extends TestClass> path) {
        super(path.getType(), path.getMetadata());
    }

    public QTestClass(PathMetadata metadata) {
        super(TestClass.class, metadata);
    }

}

/**
 * QTestRecord is a Querydsl query type for TestRecord
 */
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QTestRecord extends EntityPathBase<TestRecord> {

    private static final long serialVersionUID = -1394409244L;

    public static final QTestRecord testRecord = new QTestRecord("testRecord");

    public final org.springframework.data.domain.QPersistable _super = new org.springframework.data.domain.QPersistable(this);

    public final ComparablePath<java.util.UUID> id = createComparable("id", java.util.UUID.class);

    public final BooleanPath new$ = createBoolean("new");

    public QTestRecord(String variable) {
        super(TestRecord.class, forVariable(variable));
    }

    public QTestRecord(Path<TestRecord> path) {
        super(path.getType(), path.getMetadata());
    }

    public QTestRecord(PathMetadata metadata) {
        super(TestRecord.class, metadata);
    }

}

但是在处理过程中,我收到了:找不到由这一行引起的符号

代码语言:javascript
复制
public final org.springframework.data.domain.QPersistable _super = new org.springframework.data.domain.QPersistable(this);

只在QTestRecord。为什么记录和班级有区别?非常感谢!

PS: querydsl配置:

代码语言:javascript
复制
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
        </dependency>

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-mongodb</artifactId>
        </dependency>
.
.
.
          <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.QuerydslAnnotationProcessor
                            </processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
EN

回答 1

Stack Overflow用户

发布于 2022-08-08 14:45:14

最新的Querydsl APT 5.0.0支持记录。请参阅#2798 - Java记录支持

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71063654

复制
相关文章

相似问题

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