java – 为什么查询dsl实体路径限制为四个级别?

前端之家收集整理的这篇文章主要介绍了java – 为什么查询dsl实体路径限制为四个级别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在使用maven apt插件生成EntityPath基类.
<plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>maven-apt-plugin</artifactId>
            <version>1.0.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <phase>generate-sources</phase>
                    <configuration>
                        <outputDirectory>target/generated-sources/java</outputDirectory>
                        <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.mysema.querydsl</groupId>
                    <artifactId>querydsl-apt</artifactId>
                    <version>${querydsl.version}</version>
                </dependency>
                <dependency>
                    <groupId>com.mysema.querydsl</groupId>
                    <artifactId>querydsl-jpa</artifactId>
                    <classifier>apt</classifier>
                    <version>${querydsl.version}</version>
                </dependency>
            </dependencies>
        </plugin>

这会生成所需的Q类,它有助于构建查询谓词.但是我注意到,每当我超过四个级别时,我总是得到一个空指针异常,即:

QFoo.foo.x.y.z

其中Z是QZ型;生成的EntityPath也是如此.

这是QueryDSL的限制吗?

解决方法

是的,这是Querydsl的限制.由于正常路径初始化使用最终字段,因此需要使用限制.幸运的是路径初始化可以通过多种方式定制 http://www.querydsl.com/static/querydsl/3.5.0/reference/html/ch03s03.html#d0e2181

猜你在找的Java相关文章