mybatis默认不支持一个insert执行多条sql
解决办法:在配置jdbc时,路径中加 &allowMultiQueries=true
jdbc:mysql://ip:3306/hive?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=UTC&allowMultiQueries=true
Parent 实体中有List 一次插入
父实体KAFKA_CONSUMER_TASK
子实体KAFKA_DATATABLE
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into KAFKA_CONSUMER_TASK(ID,TASK_NAME, BOOTSTRAP_SERVERS, TOPIC, DATASOURCE, GROUP_ID, CONSUMER_ID,
TASK_STATUS, AUTO_OFFSET_RESET, ENABLE_AUTO_COMMIT, KEY_DESERIALIZER, VALUE_DESERIALIZER, MAX_POLL_RECORDS,
FETCH_MAX_WAIT, AUTO_COMMIT_INTERVAL, IS_DELETED, CREATE_TIME, UPDATE_TIME)
values (#{id},#{taskName}, #{bootstrapServers}, #{topic}, #{datasource}, #{groupId}, #{consumerId},
#{taskStatus}, #{autoOffsetReset}, #{enableAutoCommit}, #{keyDeserializer}, #{valueDeserializer},
#{maxPollRecords}, #{fetchMaxWait}, #{autoCommitInterval}, #{isDeleted}, #{createTime}, #{updateTime})
;insert into KAFKA_DATATABLE(ID,TASK_ID, TABLE_NAME, DATABASE_NAME, RECENT_SYN_TIME, IS_DELETED, CREATE_TIME,
UPDATE_TIME)
values
<foreach collection="datatables" item="datatable" index="no" open="(" close=")" separator=",">
#{datatable.id},#{id}, #{datatable.tableName}, #{datatable.databaseName}, #{datatable.recentSynTime},
#{isDeleted}, #{createTime}, #{updateTime}
</foreach>
;
</insert>