tockie 1 Denunciar post Postado Junho 29, 2013 Pessoal, é meu primeiro tópico neste fórum e gostaria de fazer uma pergunta(apenas por curiosidade): Gostaria de saber se tem como aproveitar as exceções SQL no Java para retornar uma mensagem para o usuário, mas apenas aquelas ligadas a restrições feitas no MySQL. Por exemplo: Eu defini que o campo Nome de uma tabela x é unico. Desta forma, se eu tentar inserir um nome que já existe, irá dar um exceção. Então eu pegaria esta exceção e , com base em alguma informação, eu retornaria uma mensagem para o usuário dizendo, por exemplo: "Este nome já existe. Digite outro." É basicamente isto: eu queria aproveitar as restrições feitas no banco de dados, para não ter de fazer pelo Java novamente, sem que seja necessário criar funções que faça estas restrições já existentes no banco de dados. Se for possível fazer isto, é apropriado fazer desta forma? Compartilhar este post Link para o post Compartilhar em outros sites
Edultra 13 Denunciar post Postado Julho 1, 2013 Sim, é possível teria que utilizar annotations, para banco de dados o mais comum é a utilização do hibernate validator, utilizando annotations, o comum e o que utilizamos aqui no serviço é efetuarmos uma validação no cliente via javacript (JQuery Validate) e no servidor outra validação com hibernate validator. ex algumas annotations: @AssertFalse Verifica se anotação é false. @AssertTrue Verifica se anotação é true. @Email Verificar se a seqüência especificada é um endereço de e-mail válido. @Length(min=, max=) Precisa ser uma string. Validar que a string está entre min e max incluído. @Max Verifica se o valor anotado é inferior ou igual ao valor máximo especificado. @Min Verificar se o valor anotado é maior do que ou igual ao mínimo especificado. @notNull Verifique se o valor anotado não é nulo. @notEmpty Precisa ser uma string. Verifica se a string não é nulo ou vazio. @Null Verifique se o valor anotado é nulo. @Pattern(regex=, flag=) Precisa ser uma string. Verifica se a cadeia anotada corresponde à expressão regular regex @Size(min=, max=) Verifica se o tamanho do elemento anotado é entre mínimo e máximo. Tamanho da coluna será definido para max. @Valid Realizar a validação recursivamente sobre o objeto associado, ou seja com objetos que tenham relacionamento. Um exemplo de utilização em uma classe: @Entity public class Produto { @Id @GeneratedValue private Long id; @NotNull @Length(min=3) private String nome; @NotNull @Length(max=40) private String descricao; @Min(0) private Double preco; } Exemplo para setar uma mensagem de erro: @NotNull(message="Nome precisa ser preenchido") @Length(min=3, message="Nome precisa ter mais de 3 letras") private String nome; Existem n's tutoriais na internet, inclusive aqui no portal do iMasters, se quiser saber mais sobre hibernate validator veja a documentação on-line: http://docs.jboss.org/hibernate/validator/4.0.1/reference/en/html_single/ Compartilhar este post Link para o post Compartilhar em outros sites
tockie 1 Denunciar post Postado Julho 2, 2013 Valeu, Edultra. Já tinha visto annotations no java como @Deprecated e @Override, mas não imaginava que eles tinham esta utilidade. Valeu mesmo. Eu vou dar uma lida no link que você passou. Compartilhar este post Link para o post Compartilhar em outros sites