自定义 QType 以缩短路径
Customize QType for shorten path
我想定制一个QType/Query来缩短一段关系。
public class Foo {
private FooBar fooBar;
}
public class FooBar{
private Bar bar;
}
public class Bar{
private String name;
}
目前搜索总是foo.fooBar.bar.name。我想指定一个缩短的路径,以便可以直接 foo.bar.name 。是否可以直接在QFoo中自定义关系?
构建步骤
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
注意:
在另一个包中使用 QueryEntity,它可以与 Eclipse Linkplugin
一起正常工作
您可以为此使用委托方法 (https://querydsl.com/static/querydsl/4.4.0/reference/html_single/#d0e2479)。
它们的工作方式如下:
在Foo
中声明一个委托方法:
@QueryDelegate(Foo.class)
public static StringPath name(QFoo foo) {
return foo.bar.name;
}
现在 QFoo
将使用生成 foo.bar.name
路径的 name()
方法生成。
我想定制一个QType/Query来缩短一段关系。
public class Foo {
private FooBar fooBar;
}
public class FooBar{
private Bar bar;
}
public class Bar{
private String name;
}
目前搜索总是foo.fooBar.bar.name。我想指定一个缩短的路径,以便可以直接 foo.bar.name 。是否可以直接在QFoo中自定义关系?
构建步骤
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
注意: 在另一个包中使用 QueryEntity,它可以与 Eclipse Linkplugin
一起正常工作您可以为此使用委托方法 (https://querydsl.com/static/querydsl/4.4.0/reference/html_single/#d0e2479)。
它们的工作方式如下:
在Foo
中声明一个委托方法:
@QueryDelegate(Foo.class)
public static StringPath name(QFoo foo) {
return foo.bar.name;
}
现在 QFoo
将使用生成 foo.bar.name
路径的 name()
方法生成。