기존 repository 소스코드
@Repository public class AttachFileRepository4Mybatis {
@Autowired private SqlSessionTemplate sessionTemplate;
public List<Long> insertList(List<AttachFileRequestDTO> attachFiles) throws DataAccessException {
List<Long> attachFileIds = new ArrayList<>();
for (AttachFileRequestDTO attachFileRequestDTO : attachFiles) {
Long result = Long.valueOf(sessionTemplate.insert("attachFile.insert", attachFileRequestDTO)); attachFileIds.add(result);
}
return attachFileIds;
}
}
수정된 소스코드 
@Repository
public class AttachFileRepository4Mybatis {
    @Autowired
    private SqlSessionTemplate sessionTemplate;
    public List<Long> insertList(List<AttachFileRequestDTO> attachFiles) throws DataAccessException {
        List<Long> attachFileIds = new ArrayList<>();
        for (AttachFileRequestDTO attachFileRequestDTO : attachFiles) {
            sessionTemplate.insert("attachFile.insert", attachFileRequestDTO);
            Long attachFileId = attachFileRequestDTO.getAttachFileId();
            attachFileIds.add(attachFileId);
        }
        return attachFileIds;
    }
}
참고 
insert mapper
<mapper namespace="attachFile">
    <insert id="insert">
        <selectKey resultType="long" keyProperty="attachFileId" order="BEFORE">
            SELECT SEQ_ATTACH_FILE_ID.NEXTVAL AS attachFileId FROM DUAL
        </selectKey>
        INSERT INTO ATTACHFILE
        (ATTACHFILEID
        , ATTACHFILETYPE
        , CREATEDATE
        , FILESIZE
        , FILEUPLOADPATH
        , ORIGINFILENAME
        , S3BUCKETPATH
        , TEMPFILENAME
        ) VALUES (
        #{attachFileId}
        , #{attachFileType, jdbcType=VARCHAR}
        , SYSDATE
        , #{fileSize, jdbcType=NUMERIC}
        , #{fileUploadPath, jdbcType=VARCHAR}
        , #{originFileName, jdbcType=VARCHAR}
        , #{s3BucketPath}
        , #{tempFileName, jdbcType=VARCHAR}
        )
    </insert>
</mapper>
dto 객체
@Data
@Getter
@Setter
public class AttachFileRequestDTO {
    private Long attachFileId;
    private String attachFileType;
    private String fileUploadPath;
    private String originFileName;
    private String tempFileName;
    private Long fileSize;
    private String s3BucketPath;
}
728x90