por rogelgarcia » Sex Set 17, 2010 7:29 pm
Bem, se a mensagem de validação foi dada pelo hibernate (o que é o caso, se a validacao foi disparada por uma anotacao do hibernate) o que voce tem que fazer é um catch da exceção, e trocar a mensagem. (Pelo que eu conheço do Hibernate, mas posso estar errado)
A outra alternativa que pode dar um pouco de trabalho, mas é bastante elegante e reaproveitavel, é usar um SQLErrorCodesTranslator para o seu banco. O Next já vem com alguns pré-configurados, mas dependendo da versão e idioma do seu banco e também da mensagem de erro, talvez o error code translator do next nao consiga traduzir.
Para criar o seu proprio errorCodeTranslator, o primeiro passo é ler a documentação do Spring sobre isso (O SQLErrorCodeTranslator é do Spring), depois voce deve utilizar a configuracao do banco de dados via xml, (tem um exemplo na documentacao do next, é só fazer igual) e configurar no seu dataSource o seu sqlErrorCodeTranslator personalizado.
Voce pode ver a classe PostgreSQLErrorCodeSQLExceptionTranslator do Next para ter uma noção de como implementar o seu.
Como terceira alternativa, voce pode criar um controller Mãe da sua aplicacao, sobrescrever o método handleRequestInternal, que delega para o super.handleRequestInternal e nesse método voce faz um try catch e se desejar troca a exceção recebida.