javer, length define o tamanho do campo e precision define a precisão (no caso de decimais). Digo para você evitar usar o atributo columDefinition porque assim você pode deixar sua aplicação pouco portável. É bom deixar o hibernate definir os campos (minha visão, obvio).
Só que isso não valida não. @Column é apenas para as definições da coluna. Para validação você pode usar o Hibernate Validator. Ele funciona para qualquer ORM e não é dependente do hibernate-core. Você pode usar tranquilamente no toplink. Você usa toplink ou eclipselink?
Com o hibernate validator você pode usar coisas como:
[code]@Email // valida se o campo é email
private String email;
@NotNull // não permite nulos
private String nome;
@Length(max=50) // valida o tamanho
private String profissao;[/code]
Depois de “bater bastante a cabeça” cheguei a conclusão que o atributo na entidade tem que ser BigDecimal para dar certo assim:
@Column(name = "ALIQUOTA", precision = 4, scale = 2)
public BigDecimal getAliquota() {
return aliquota;
}
No BD fica assim, mas ainda não sei como passar o default, de 0,00 por exemplo.
[quote=garcia-jj]javer, length define o tamanho do campo e precision define a precisão (no caso de decimais). Digo para você evitar usar o atributo columDefinition porque assim você pode deixar sua aplicação pouco portável. É bom deixar o hibernate definir os campos (minha visão, obvio).
Só que isso não valida não. @Column é apenas para as definições da coluna. Para validação você pode usar o Hibernate Validator. Ele funciona para qualquer ORM e não é dependente do hibernate-core. Você pode usar tranquilamente no toplink. Você usa toplink ou eclipselink?
Com o hibernate validator você pode usar coisas como:
[code]@Email // valida se o campo é email
private String email;
@NotNull // não permite nulos
private String nome;
@Length(max=50) // valida o tamanho
private String profissao;[/code][/quote]Eu uso (estou começando, ainda não tenho nenhuma aplicação realmente usando) TopLink e o ambiente é Desktop (Swing).
Quais .jars do Hibernate Validator eu preciso?
Na verdade você pode usar qualquer decimal do Java, pode ser double ou float também (tanto primitivo como wrapper). Quando ao valor default realmente eu não sei como fazer, pois a documentação não diz nada sobre isso. Nesse caso acho que você pode usar isso no columnDefinition pois todas as base de dados usam um padrão para isso:
[quote=garcia-jj]javer, length define o tamanho do campo e precision define a precisão (no caso de decimais). Digo para você evitar usar o atributo columDefinition porque assim você pode deixar sua aplicação pouco portável. É bom deixar o hibernate definir os campos (minha visão, obvio).
Só que isso não valida não. @Column é apenas para as definições da coluna. Para validação você pode usar o Hibernate Validator. Ele funciona para qualquer ORM e não é dependente do hibernate-core. Você pode usar tranquilamente no toplink. Você usa toplink ou eclipselink?
Com o hibernate validator você pode usar coisas como:
[code]@Email // valida se o campo é email
private String email;
@NotNull // não permite nulos
private String nome;
@Length(max=50) // valida o tamanho
private String profissao;[/code][/quote]
Amigo preciso que você me dê alguma dica de como se usa o Hibernate Validator, baixei o arquivo hibernate-validator-4.0.2.GA.jar mas não sei como configurar no meu sistema Desktop.
O que tenho que fazer? Algum xml em algum lugar? (fora o .jar no classpath). Sei que existe uma massa gigantesca que usa Hibernate para web mas em Swing parece que pouca gente usa.
[quote=javer]Amigo preciso que você me dê alguma dica de como se usa o Hibernate Validator, baixei o arquivo hibernate-validator-4.0.2.GA.jar mas não sei como configurar no meu sistema Desktop.
O que tenho que fazer? Algum xml em algum lugar? (fora o .jar no classpath). Sei que existe uma massa gigantesca que usa Hibernate para web mas em Swing parece que pouca gente usa.[/quote]
O hibernate-validator é standalone, ou seja, leva somente o nome do hibernate mas não tem nada a ver com o hibernate. Felizmente, pois assim podemos usa-lo também no toplink, ibatis…
Nunca usei events no toplink, então você terá que pesquisar/testar melhor sobre como configurar para rodar nele. Basicamente o hibernate validator precisa apenas de alguns listeners para que a validação funcione. São esses os eventos: