Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como mapear um carimbo de data/hora de hibernação para um MySQL BIGINT?


Além disso, veja como criar uma implementação personalizada do tipo de hibernação. Algo na linha de (psuedocódigo, pois não tenho um ambiente útil para torná-lo à prova de balas):
public class CalendarBigIntType extends org.hibernate.type.CalendarType {
    public Object get(ResultSet rs, String name) {
        return cal = new GregorianCalendar(rs.getLong(name));
    }
    public void set(PreparedStatement stmt, Object value, int index) {
        stmt.setParameter(index, ((Calendar) value).getTime());
    }
}

Em seguida, você precisará mapear seu novo objeto usando um mapeamento de TypeDef e Type de hibernação. Se você estiver usando anotações do Hibernate, será na linha de:
@TypeDef (name="bigIntCalendar", typeClass=CalendarBigIntType.class)
@Entity
public class MyEntity {
    @Type(type="bigIntCalendar")
    private Calendar myDate;
}