Как пропустить @Transient поля в генерации querydsl? - PullRequest
0 голосов
/ 02 мая 2019

У меня есть класс @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 находится в другой папке, чем сущность домена, и поэтому не указан в package-info.java querydsl.Но как я мог решить эту проблему без необходимости перемещения объекта аудита?

Генерируется во время:

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

1 Ответ

0 голосов
/ 03 мая 2019

Не могли бы вы попробовать переходное объявление как transient String obj; вместо

@Transient
private Object obj;
...