iae galera,
eu tenho uma enum que eu fiz assim:
public enum SimNao {
Sim, Não;
}
ela ta mapeada assim :
@Column(name = "client")
@Enumerated(EnumType.ORDINAL)
private SimNao client;
quando eu faço um find no banco ele me faz os valores “SIM”/“NÃO” e eu precisava que fosse 0 e 1, o comportamento é esse mesmo? ou tem uma forma de trazer o 0 e 1?
http://tomee.apache.org/examples-trunk/jpa-enumerated/README.html
Se vc quer as Strings SIM /NAO vc usa EnumType.STRING, o .ORDINAL é pra 0, 1, 2…
norbAns
Dezembro 11, 2016, 11:49am
#3
Vai ser sempre uma dessas duas possibilidades SIM ou Não?
Já pensou em usar boolean?
então eu quero o 0 ,1 mas quando ele insere um dado ele fica com [ 0 , 1 ], e quando ele busca o dado no banco ele fica com [“Sim”,“Não”]
tem algo estranho ai.
pq isso é um tipo Enumerado com dois valores, Sim e Nao, ( 0 e 1 )
vc não vai trazer do banco as strings “Sim”/ “Nao”. vc vai trazer 0 e 1 e o hibernate gerar os objetos adequados.
o que talvez aconteça é vc tentar imprimir o objeto ou valor e aparecer Sim/Não pq isso é o “toString” do valor.
se vc quer o valor 0 ou 1 vc tem duas opções
não use esta enumeração. torne esse campo inteiro
use o campo .ordinal() para pegar o 0 ou 1 dessa enumeração
enum SimNao {
Sim, Nao
}
public class A {
public static void main (String args[]){
System.out.println("string = " + SimNao.Sim + ", value " + SimNao.Sim.ordinal());
System.out.println("string = " + SimNao.Nao + ", value " + SimNao.Nao.ordinal());
}
}
output
string = Sim, value 0
string = Nao, value 1
1 curtida