Joanne
Joanne

Reputation: 1

Spring boot & MyBatis xml query for update list

I try to update a column my Mybatis xml Mapper. The parameterType is Request class, and it contained List type object. I want to get that object from class to xml mapper. But I got an issue like this continueously. What's the problem?

Here is my xml code

<update id="moveEBookShelf" parameterType = "kyobobook.digital.application.domain.bsh.EBookShelfMoveBshRequest">
    <foreach item="bsh" index="index" collection="resultList" open="(" separator="," close=")">
        UPDATE EOU.T_UI_DGCT_BSH_M
           SET DGCT_BSH_ARNG_SRMB = #{bsh.bshArrgNum}
           WHERE DGCT_BSH_NUM = #{bsh.bshNum}
    </foreach>      
</update>

Request class looks like this,

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EBookShelfMoveBshRequest extends DataTableRequest {

    private String updown;
    List<EBookShelf> resultList;

}

And EBookShelf code like this

@Data
@SuperBuilder
@Getter
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper=false)
public class EBookShelf{

    private int bshNum;         
    private String bshName;     
    private int bshArrgNum;     
    private String dltYN;       

    private int totalCount;   

}

Finally I got and issue like this

EOU.T_UI_DGCT_BSH_M SET DGCT_BSH_ARNG_SRMB = 3 WHERE DGCT_BSH_NUM = 278008 , UPDATE EOU.T_UI_DGCT_BSH_M SET DGCT_BSH_ARNG_SRMB = 2 WHERE DGCT_BSH_NUM = 278009 , UPDATE EOU.T_UI_DGCT_BSH_M SET DGCT_BSH_ARNG_SRMB = 4 WHERE DGCT_BSH_NUM = 278010 ) {FAILED after 11 ms} org.postgresql.util.PSQLException: ERROR: syntax error at or near "UPDATE" Position: 11 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2553)

Upvotes: 0

Views: 1916

Answers (1)

zhmk
zhmk

Reputation: 1

<update id="moveEBookShelf" parameterType = "kyobobook.digital.application.domain.bsh.EBookShelfMoveBshRequest">
    <foreach item="bsh" index="index" collection="resultList" open=" " separator=";" close=" ">
        UPDATE EOU.T_UI_DGCT_BSH_M
           SET DGCT_BSH_ARNG_SRMB = #{bsh.bshArrgNum}
           WHERE DGCT_BSH_NUM = #{bsh.bshNum}
    </foreach>      
</update>

Upvotes: 0

Related Questions