Order no ultimo resultado de uma collection

Estou usando o TopLink aqui no meu projeto.

Bom, vou explicar como ta montado o sistema (tudo esta funcionando corretamente até o momento, o problema vem depois). Tenho 2 classes, uma que é de Chamado e outra de Mensagem. A Mensagem são as mensagens do chamado.

Em Mensagem só tenho isso:

id
data de envio
mensagem
usuario que enviou
id do chamado

e no Chamado eu mapeio assim:

@OneToMany(targetEntity = Mensagem.class, orphanRemoval = true, cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_chamado", table = "mensagem")
private List<Mensagem> mensagens = new ArrayList<Mensagem>();

O problema que estou tendo agora é o seguinte. Eu preciso fazer o list de chamados, que até o momento esta funcionando, mas agora tenho que considerar no ORDER BY também a data da ultima mensagem, isso usando o JPA mesmo (to tentando fugir do criteria).

Atualmente a query ta assim

SELECT c FROM Chamado c WHERE xxxxx ORDER BY c.status, c.dataAbertura desc

E tem algum problema com a query? O.o

nessa Query que postei não, o problema é que eu quero adicionar ao ORDER BY uma lista.

ela ficaria mais ou menos assim

SELECT c FROM Chamado c WHERE xxxxx ORDER BY c.status, c.mensagens.dataEnvio desc, c.dataAbertura desc

Sendo que essa dataEnvio tem que ser a data da ultima mensagem, e o mensagens é o List que eu falei acima.

Por query não sei como fazer… Talvez eu possa pensar em algo depois.

Existe a anotação OrderBy que você poderia colocar no relacionamento: Ordernando listas e utilizando Map como atributo mapeado.