我想将Java与mongoDB & querydsl结合使用。然而,似乎querydsl APT引起了一个问题。当我试图处理简单代码(一个记录和一个普通类)时:
@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;
}
}结果是:
/**
* 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);
}
}但是在处理过程中,我收到了:找不到由这一行引起的符号:
public final org.springframework.data.domain.QPersistable _super = new org.springframework.data.domain.QPersistable(this);只在QTestRecord。为什么记录和班级有区别?非常感谢!
PS: querydsl配置:
<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>发布于 2022-08-08 14:45:14
最新的Querydsl APT 5.0.0支持记录。请参阅#2798 - Java记录支持
https://stackoverflow.com/questions/71063654
复制相似问题