如何在 querydsl 生成中跳过 @Transient 字段?

我有一个@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;

}

包信息.java:


@QueryEntities(value = MyEntity.class)

package com.domain.myentity


import com.querydsl.core.annotations.QueryEntities;

import com.domain.myentity.MyEntity;

问题:如何告诉 querydsl@Transient自动忽略任何字段?目前,根本原因可能是AuditingEntity与域实体位于不同的文件夹中,因此未在package-info.javaquerydsl 中列出。但是我怎么能在不移动审计实体的情况下解决它呢?


期间产生:


<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>


智慧大石
浏览 178回答 2
2回答

慕勒3428872

如果您想阻止 QueryDsl 映射字段或方法,您应该使用@QueryType - 带有PropertyType的注释。无。值 PropertyType.NONE 可用于在查询类型生成中跳过属性。这种情况与 @Transient 或 @QueryTransient 注释属性不同,其中属性不会持久化。PropertyType.NONE 只是省略了 Querydsl 查询类型中的属性。@Entitypublic class MyEntity {&nbsp; &nbsp; @QueryType(PropertyType.NONE)&nbsp; &nbsp; public String stringNotInQuerydsl;}在这里查看官方文档

至尊宝的传说

你可以尝试瞬态声明transient String obj; 而不是@Transientprivate Object obj;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java