Oto pełny kod do ostatniej odpowiedzi (dla większej przejrzystości).
W pliku data-config.xml odczytaj datę z bazy danych i rzutuj na znacznik czasu:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
Umieść w encji DataImportHandler, która wygląda tak:
<entity name="startDate" transformer="script:startDateTransform"
query="select cast(STRT_DT as timestamp) as STRT_DTTS from DATES" >
<field column="STRT_DTTS" name="STRT_DT" />
</entity>
To zapytanie zwróci oracle.sql.TIMESTAMP, ale nie będzie mapowane bezpośrednio na datę. Dlatego wymagany jest transformator skryptowy. Dlatego przedstawiamy script:startDateTransform
. W tym samym data-config.xml możesz wstawić JavaScript w ten sposób:
function startDateTransform(row){
// Get the timestamp and convert it to a date
var dateVal = row.get("STRT_DTTS").dateValue();
// Put the correct date object into the original column
row.put("STRT_DTTS", dateVal);
return row;
}
Tutaj konwertujemy znacznik czasu na datę, aktualizujemy wartość kolumny i zwracamy wiersz z nowymi informacjami.
Pole STRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
powinien teraz zawierać poprawną datę.