Hibernate ordenação com acentos

Percebi q mesmo q o banco esteja com o encoding / charset correto para caracteres acentuados a ordenação não fica correta.

Ex.: Imaginem uma tabela com os registros: ‘a’, ‘à’ e ‘b’ se eu fizer:
select * from tabela order by campo
aparece na seguinte ordem: ‘a’, ‘b’ e ‘à’.

Percebi isto no SQL Server e no PostGreSQL.
Vi q no PostGreSQL existe a função translate onde posso fazer o seguinte comando abaixo para obter o resultado certo:
select * from tabela order by translate(campo, ‘âãá’, ‘aaa’)

A pergunta é: existe uma forma prática via Hibernate para obter o resultado na ordem alfabética correta? Ou, existe mais alguma coisa a ser feita no banco de dados (qq um) para ter o resultado certo?

Obrigado.

Até agora nunca consegui resolver esse problema através do BD nem do Hibernate, então faço o seguinte: leio os dados via Hibernate e em seguida os ordeno através de um Comparator. Esse Comparator, por sua vez, ordena String’s através de um Collator. Recomendo checar o link abaixo:

http://www.guj.com.br/posts/list/93306.java

Obrigado.
Recebi uma resposta tb sobre as variáveis LC_COLLATE e LC_CTYPE para o PostGreSQL no post: http://br.groups.yahoo.com/group/flex-brasil/message/23007, mas como respondi neste http://br.groups.yahoo.com/group/flex-brasil/message/23008 tinha q ter uma forma mais prática.
É um nonsense os bancos gravarem a acentuação corretamente mas não as ordenar de forma correta.

lembro uma vez, que o thingol, se não me engnao, me falou uma solução para compara desonciderando caracters acentuados, era uma solução com Locale algo assim, não lembro bem…

talvez ele possa ajudar…

Vlw, deve ser a url da resposta do roger_rf.