Posts Tagged ‘persistence’
Hibernate persistindo valores S/N ao invés de Y/N
maio 3, 2010
1 comentário
Estes dias nos deparamos com um problema, já existia um banco de dados sendo usado por outras aplicações, onde todas as tabelas que havia colunas do tipo True/False não poderia ser persistidos com valores Y/N que o Hibernate utiliza, exigia-se que os valores Booleanos deveriam ser persistidos em português S/N.
Assim, tivemos que fazer algumas mudanças para esse novo comportamento, foi utilizada a anotação TypeDefs para definir o novo tipo a ser utilizado. Abaixo está o exemplo simples para você entender.
package entity; import org.hibernate.annotations.Type; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; @org.hibernate.annotations.TypeDefs({ @org.hibernate.annotations.TypeDef(name = "sim_nao", typeClass = SimNaoType.class)}) @Entity @Table(name = "TBL_USUARIO") public class Usuario { private Boolean ativo; // outros atributos @Column(name = "ATIVO", nullable = false, length = 1) @Type(type = "sim_nao") public Boolean getAtivo(){ return this.ativo; } public void setAtivo(Boolean ativo){ this.ativo = ativo; } //setters/getters }
package entity; import org.hibernate.type.CharBooleanType; public class SimNaoType extends CharBooleanType { @Override protected String getTrueString() { return "S"; } @Override protected String getFalseString() { return "N"; } @Override public String getName() { return "sim_nao"; } }
Categorias:java2ee, web
annotations, CharBooleanType, Entity, hibernate, persistence, TypeDef