Pessoal, estou com um problema que não consigo resolver.
Tenho três classes que se relacionam:
@Entity
@SequenceGenerator(name = "FROTA_SEQ", sequenceName = "frota_seq")
public class Frota implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="FROTA_SEQ")
private Long id;
private String nome;
@OneToMany(mappedBy="frota")
@OrderBy("posicaoAtual desc")
private List<Dispositivo> dispositivos;
}
@Entity
@SequenceGenerator(name = "DISPOSITIVO_SEQ", sequenceName = "dispositivo_seq")
public class Dispositivo implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="DISPOSITIVO_SEQ")
private Long id;
private String nome;
private int banco = 0;//paginação
@ManyToOne
private Frota frota;
@OneToOne
private Posicao posicaoAtual;
}
@Entity
@SequenceGenerator(name = "POSICAO_SEQ", sequenceName = "posicao_seq")
public class Posicao implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="POSICAO_SEQ")
private Long id;
private Date hora;
@ManyToOne
private Dispositivo dispositivo;
}
O que acontece é o seguinte: quero q a lista de dispositivos da minha classe frota seja ordenada pela posição atual, como fiz a annotation (@OrderBy(“posicaoAtual desc”)), porém, ele ordena pelo id da posição atual, e queria que ele ordenasse pela hora da posicaoAtual.
Ja tentei colocar @OrderBy(“posicaoAtual.hora desc”), mas ai da exception.
Alguém ai sabe como resolver isso?
Eu ja tentei implementar a interface Comparable com a classe Posicao, mas nao funcionou tbm.
Se alguém puder me ajudar agradeço.
Abraços