JPQL 查询 - 按嵌套字段排序

JPQL query- order by nested field

给定一个 class OP

public class OP {
  String name;
  int rank;
}

和一个class D

public class D {
  OP parameter; 
}

用 JPQL 编写的查询应该如何列出按 OP class 的 rank 字段排序的 D class 的实例。对 OP 对象具有空引用的实例必须列在末尾。

经过一些测试后,我设法让事情正常进行。这就是我用 Spring Repository:

实现它的方式
@Repository
public interface DRepository extends CrudRepository<D, Long> {

    @Query("select d from D d left outer join d.parameter op order by op.rank desc")
    List<D> getDs();

}

注意 left outer join 包括 D 具有空 parameter 字段的实例和 order by 子句之后的 desc 强制实例具有空 OP 到列表末尾。