我有一个@Entity
类,在上面使用了querydsl
代码生成。
问题:我的实体有一个父实体,其中包含一些@Transient
字段。而且这些不会在生成过程中被跳过。
package com.domain.myentity
@Entity
public class MyEntity extends AuditingEntity {
}
package com.auditing
@MappedSuperclass
public class AuditingEntity {
@Transient
private transient Object obj;
}
package-info.java:
@QueryEntities(value = MyEntity.class)
package com.domain.myentity
import com.querydsl.core.annotations.QueryEntities;
import com.domain.myentity.MyEntity;
问题:如何告诉querydsl自动忽略任何@Transient
字段?
当前,根本原因可能是AuditingEntity
与域实体位于不同的文件夹中,因此未在querydsl的package-info.java
中列出。但是,如何在不移动审计实体的情况下解决该问题?
在以下时间生成:
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>${apt-maven-plugin.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
</dependency>
</dependencies>
</plugin>
答案 0 :(得分:0)
您可以尝试将临时声明声明为@Transient
private Object obj;
吗?
代替
HTMLCanvasElement.prototype.getContext = function() {
return null;
};
答案 1 :(得分:0)
如果要防止QueryDsl映射字段或方法,则应使用 @QueryType -带有 PropertyType 的注释。 无 。
值PropertyType.NONE可用于跳过查询类型生成中的属性。这种情况与@Transient或@QueryTransient带注释的属性不同,在这些属性中,属性不会保留。 PropertyType.NONE只是从Querydsl查询类型中省略了该属性。
@Entity
public class MyEntity {
@QueryType(PropertyType.NONE)
public String stringNotInQuerydsl;
}
请参阅官方文档here