2017-10-06 1 views
0

I-Code eine einfache hadoop/hive Tisch haben, definiert alsHIVE und Mybatis Ausgabe mit Datum/Zeitstempel Felder

CREATE TABLE mike 
timeOne TIMESTAMP, 
timeTwo TIMESTAMP, 
name STRING 

Und dann ein Mybatis Mapper-Datei einen Datensatz hier einfügen, die

<insert id="insertMikeFormDataForHadoop" parameterType="hashmap"> 
    INSERT INTO ${tableName} (timeOne, timeTwo, name) 
    VALUES (#{timeOne, jdbcType=DATE}, #{timeTwo, jdbcType=DATE}, #{name}) 
    </insert> 
sieht wie folgt aus

Wenn ich einen Test ausführen, um Daten über diese SQL einzufügen, erhalte ich einen Fehler wie diesen.

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database. Cause: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 2:16 mismatched input '-' expecting) near '2017' in value row constructor 
### The error may involve com.vertexinc.ve.returns.mapper.FormMapper.insertMikeFormDataForHadoop-Inline 
### The error occurred while setting parameters 
### SQL: INSERT INTO mike (timeOne, timeTwo, name)  VALUES (?, ?, ?) 
### Cause: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 2:16 mismatched input '-' expecting) near '2017' in value row constructor 

Ich habe dies auch mit jdbcType = TIMESTAMP anstelle von Datum mit dem gleichen Fehler versucht.

Ich frage mich, ob ich etwas falsch mache oder etwas über Bienenstock/Hadoop und Mybatis nehme, dass ich nicht sollte.

(Dies ist ein super einfaches Beispiel, das ich verwendet habe, um diesen Punkt zu veranschaulichen).

Antwort