Если поле POJO, отображаемое в столбце char (4) БД, имеет доступ по свойству, то hibernate вызовет его установщик и получатель для сопоставления между базой данных и POJO.Таким образом, логика преобразования может быть реализована внутри установщика и получателя этого свойства.Кроме того, intDate должен быть помечен как @Transient, чтобы hibernate игнорировал отображение этого поля.
public class TableABC {
private int id;
private int intDate;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(length=4)
private String getCharDate() {
return String.valueOf(this.intDate);
}
private void setCharDate(String charDate) {
try {
this.intDate = Integer.parseInt(charDate);
} catch (NumberFormatException e) {
//Logic to handle when charDate cannot convert to integer
this.intDate = 0;
}
}
@Transient
public int getIntDate() {
return intDate;
}
public void setIntDate(int intDate) {
this.intDate = intDate;
}
}