【发布时间】:2015-02-02 13:07:06
【问题描述】:
我正在将 xml 中的记录插入到具有许多外键的表中。从 XML 数据中可能存在尚不存在的外部关系,因此我需要在插入主实体之前插入它。
例如
<person>
<name>p1</name>
<school>XYZ School</school>
<person>
我的 JDBCBatchItemWriter sql 将是:
INSERT INTO PERSON (NAME, SCHOOL_ID) VALUES (:name, (SELECT ID FROM SCHOOLS WHERE SCHOOL_NAME = :school));
在插入主要实体之前,我是否需要一个单独的作业步骤来插入每个关系?我一直在寻找具有关系数据的示例,我发现的所有内容似乎都是外键已经存在的简单情况。
解决方案: 最终迈出了一步,为我需要制作的所有外来对象创建了一个 HashMap>。然后将其注入下一步,如果该对象尚不存在,则执行插入。可能需要比使用内存 HashMap 更好的解决方案,但目前似乎可行。
【问题讨论】:
标签: spring spring-batch