[quote=Kanin Dragon]Pelo que eu saiba, não existe nenhum conversor padrão no JPA.
Para conseguir resolver isso só fazendo essa POG que você fez ou criando um campo transient na sua classe entidade e nos get e set vc verifica o valor do campo transient e seta no campo boolean.
Espero ter ajudado![/quote]
Bom, na verdade, seria uma possibilidade - dê uma olhada na alteração que eu fiz:
@Column(name="empresaCorr", nullable=false)
private int empresaCorr;
Meu get e set:
public Boolean getEmpresaCorr() {
if (this == null) {
return Boolean.FALSE;
} else {
return this.empresaCorr == -1 ? Boolean.TRUE : Boolean.FALSE;
}
}
public void setEmpresaCorr(Boolean empresaCorr) {
if (empresaCorr == null) {
this.empresaCorr = 0;
} else {
this.empresaCorr = empresaCorr == true ? -1 : 0;
}
}
Isso deveria funcionar, correto? Porém, me deparei com um outro problema. Meu campo é do tipo INT(1), como já mencionei, e com valor 0 para representar false e -1 para true.
Mas, quando eu jogo ele via JPA, o conteúdo sempre está retornando 0 - false.
Inclusive se eu mudar o valor do campo para “123”, o JPA irá me exibir FALSE no retorno… Se eu colocar no banco de dados “123” no campo, e executar:
public Boolean getEmpresaCorr() {
System.out.println("Valor do campo: " + this.empresaCorr;
O conteúdo impresso é:“Valor do campo: 0”
Existe algum problema no meu mapeamento do JPA para o MySQL?