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).