在Hibernate Criteria中按嵌套属性(三个级别)排序

时间:2017-10-10 16:33:06

标签: java hibernate

我在尝试通过嵌套多个级别的属性订购条件时遇到了麻烦。

我已经阅读了答案How can I sort in (n)hibernate on a property of a child object?,并发现创建别名可能就是解决方案。

这适用于一个级别。但是,如果我尝试嵌套两个或三个级别的属性,我会收到错误。我的代码如下:

@Entity
class TareaAsignada ... {
    Siniestro siniestro;
    ...
}

@Entity
class Siniestro ... {
    UsuarioSIS dueno;
    ...
}

@Entity
class UsuarioSIS ... {
    Agencia agencia;
    ...
}

@Entity
class Agencia ... {
    String nombre;
    ...
}

我用来创建标准的代码是:

DetachedCriteria criteria = DetachedCriteria.forClass(TareaAsignada.class);
...
criteria.createAlias("siniestro", "siniestro");
criteria.createAlias("siniestro.dueno", "dueno");
criteria.createAlias("dueno.agencia", "agencia");
...
criteria.addOrder(Order.asc("siniestro.dueno.agencia.nombre"));

我得到的错误是:

could not resolve property: dueno.agencia.nombre of: com.example.siniestro.model.Siniestro

0 个答案:

没有答案