Kelas model saya dianotasi dengan anotasi @Entity
JPA. Semua kelas lain dihasilkan dengan baik, kecuali yang memperluas DefaultRevisionEntity Hibernate Envers. Pembuatan kode gagal dengan kesalahan berikut selama mvn clean test
/.../target/generated-sources/java/.../QRevision.java:[23,37] cannot find symbol
symbol : class QDefaultRevisionEntity
location: package org.hibernate.envers
/.../target/generated-sources/java/.../QRevision.java:[23,94] cannot find symbol
symbol : class QDefaultRevisionEntity
location: package org.hibernate.envers
import javax.persistence.Entity;
import org.hibernate.envers.DefaultRevisionEntity;
import org.hibernate.envers.RevisionEntity;
<strong i="11">@Entity</strong>
@RevisionEntity(CustomRevisionListener.class)
public class Revision extends DefaultRevisionEntity {
// Fields are irrelevant
}
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>2.7.3</version>
</dependency>
...
<build>
<plugins>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0.6</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
<excludes>
<exclude>com.itella.ptp.model.Revision</exclude>
</excludes>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<classifier>apt</classifier>
<version>2.7.3</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
Referensi ke tipe entitas beranotasi eksternal diharapkan memiliki tipe-Q yang sudah tersedia di classpath.
Untuk menegakkan pembuatan QDefaultRevisionEntity, Anda dapat menambahkan anotasi berikut ke dalam file package-info.java
@QueryEntities({DefaultRevisionEntity.class})
package com.example.domain;
import org.hibernate.envers.DefaultRevisionEntity;
import com.mysema.query.annotations.QueryEntities;
Ini akan membuat Anda QDefaultRevisionEntity.java dengan konten berikut:
package org.hibernate.envers;
import static com.mysema.query.types.PathMetadataFactory.*;
import com.mysema.query.types.*;
import com.mysema.query.types.path.*;
import javax.annotation.Generated;
/**
* QDefaultRevisionEntity is a Querydsl query type for DefaultRevisionEntity
*/
@Generated("com.mysema.query.codegen.EmbeddableSerializer")
public class QDefaultRevisionEntity extends BeanPath<DefaultRevisionEntity> {
private static final long serialVersionUID = -546101328;
public static final QDefaultRevisionEntity defaultRevisionEntity = new QDefaultRevisionEntity("defaultRevisionEntity");
public final NumberPath<Integer> id = createNumber("id", Integer.class);
public final DateTimePath<java.util.Date> revisionDate = createDateTime("revisionDate", java.util.Date.class);
public final NumberPath<Long> timestamp = createNumber("timestamp", Long.class);
public QDefaultRevisionEntity(String variable) {
super(DefaultRevisionEntity.class, forVariable(variable));
}
public QDefaultRevisionEntity(Path<? extends DefaultRevisionEntity> path) {
super(path.getType(), path.getMetadata());
}
public QDefaultRevisionEntity(PathMetadata<?> metadata) {
super(DefaultRevisionEntity.class, metadata);
}
}
Terima kasih atas penunjuknya, berhasil!
Wow! Terima kasih @timowest
Wow ! Ini benar-benar bekerja! Terima kasih @timowest
Saya hanya memiliki @Entity pada kode saya dan masih berfungsi.
Komentar yang paling membantu
Referensi ke tipe entitas beranotasi eksternal diharapkan memiliki tipe-Q yang sudah tersedia di classpath.
Untuk menegakkan pembuatan QDefaultRevisionEntity, Anda dapat menambahkan anotasi berikut ke dalam file package-info.java
Ini akan membuat Anda QDefaultRevisionEntity.java dengan konten berikut: