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

我目前正在使用maven apt插件来生成EntityPath基类。

 com.mysema.maven maven-apt-plugin 1.0.4    process  generate-sources  target/generated-sources/java com.mysema.query.apt.jpa.JPAAnnotationProcessor      com.mysema.querydsl querydsl-apt ${querydsl.version}   com.mysema.querydsl querydsl-jpa apt ${querydsl.version}    

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

 QFoo.foo.xyz 

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

这是QueryDSL的限制吗?

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