Zde je celý kód k poslední odpovědi (pro větší přehlednost).
Ve vašem souboru data-config.xml načtěte datum z DB a přetypujte na časové razítko:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
Vložte do entity DataImportHandler, která vypadá takto:
<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>
Tento dotaz vrátí oracle.sql.TIMESTAMP, ale nebude mapovat přímo k datu. Proto je vyžadován skriptový transformátor. Proto zavádíme script:startDateTransform
. Do stejného data-config.xml můžete vložit JavaScript takto:
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;
}
Zde převedeme časové razítko na datum, aktualizujeme hodnotu sloupce a vrátíme řádek s novými informacemi.
Pole STRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
by nyní měl obsahovat správné datum.