quarta-feira, 9 de dezembro de 2015

Hibernate: Ordenar lista por propriedade de objeto.

Ordenar lista por propriedade de objeto.

Deve-se utilizar o nome do join criado pelo Hibernate (posicaoflp1_). Para ver o nome basta ativar a exibição de SQL no arquivo hibernate.conf.

<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>

public class Processo implements Serializable,Cloneable {

     @OrderBy("posicaoflp1_.ordem desc")
     @NotAudited
     protected Collection<Followup> followup;
}

public class Followup implements Serializable, Cloneable {

@OneToOne
@JoinColumn(name="posicaoflp_id")
private PosicaoFlp posicaoFlp;
}

public class PosicaoFlp implements Serializable{
     private Integer ordem; // Ordenar por esse campo
}


SQL gerada pelo Hibernate: left outer join posicaoflp posicaoflp1_ on followup0_.posicaoflp_id=posicaoflp1_.id