Ésta es la APP pura sin usar getters/setters, por lo que responde a la pregunta:
@Entity
public class Person {
@Convert(converter=BooleanToStringConverter.class)
private Boolean isAlive;
...
}
Y luego:
@Converter
public class BooleanToStringConverter implements AttributeConverter<Boolean, String> {
@Override
public String convertToDatabaseColumn(Boolean value) {
return (value == null || !value) ? "N" : "Y";
}
@Override
public Boolean convertToEntityAttribute(String value) {
return "Y".equals(value);
}
}
favor tenga en cuenta que esta solución es JPA 2.1, y no estaba disponible cuando se hizo la pregunta por primera vez: el JPA 2.1 specificat ión fue lanzado el 22 de abril de 2013.
Sí, esto va a funcionar (1). Me pondré en contacto con usted por correo este fin de semana acerca de un comentario pendiente que no respondí. Estoy muy interesado por la idea, así que vamos a discutir :) –
Así que este es el método getter/setter. Ojalá haya otras formas más fáciles de solucionar esto. ¿Por qué el estándar JPA no proporciona soporte de anotaciones para esto? – newguy
Esto tampoco trata con la situación de que si la columna tiene valor NULL en la base de datos. Puede modificar para obtener el valor NULO pero cuando lo ingresa se convierte a "N". – newguy