W PostgreSQL używam PersistentDuration
do mapowania między interwałem typu sql & czas trwania, ale to nie działa.Jak odwzorować interwał typu w trybie hibernacji?
Inny użytkownik znalazł ten sam problem & pochodzą z własnej klasy:
public void nullSafeSet(PreparedStatement statement, Object value, int index)
throws HibernateException, SQLException {
if (value == null) {
statement.setNull(index, Types.OTHER);
} else {
Long interval = ((Long) value).longValue();
Long hours = interval/3600;
Long minutes = (interval - (hours * 3600))/60;
Long secondes = interval - (hours * 3600) - minutes * 60;
statement.setString(index, "'"+ hours +":"
+ intervalFormat.format(minutes) + ":"
+ intervalFormat.format(secondes)+"'");
}
}
Ale to nie działa w rzeczywistym formacie ponieważ załóżmy wzór przedział jest tylko „hh: mm: ss” . To nie jest przypadek: patrz
tu kilka prawdziwych przykładach I trzeba przeanalizować z bazy danych:
1 day 00:29:42 00:29:42 1 week 00:29:42 1 week 2 days 00:29:42 1 month 1 week 2 days 00:29:42 1 year 00:29:42 1 decade 00:29:42
http://www.postgresql.org/docs/current/interactive/datatype-datetime.html
masz czyste rozwiązanie?
Nie jest to obowiązkowe, aby mieć day.And nie tylko dzień keywork (rok, miesiąc, tydzień, .. patrz link powyżej) Tutaj prawdziwych przykład z bazy danych: -1 dzień 00: 29:42 -00: 29: 42 -1 tydzień 00:29:42 1 tydzień 2 dni 00:29:42 1 miesiąc 1 tydzień 2 dni 00:29:42 -1 rok 00:29:42 1 dekada 00:29:42 – adam