DB
[DB] ERROR: syntax error at or near "$1"
페루나쵸
2024. 4. 5. 16:31
🐯 [DB] ERROR: syntax error at or near "$1"
mybatis사용중인데 종종 나던 에러인데
참고 : 현재 개발 환경
스프링 부트 / postgresql 14 / mybatis
insert를 하면 해당 에러는 종종 만나게 되는데
이번 경우에는 foreach문이 문제였다
<insert id="insert" >
INSERT INTO /* Mapper.xml : insert */
table.my_table (
id,
name,
address
) VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id}
, #{item.name}
, #{item.address}
)
</foreach>
</insert>
위에는 Insert문인데, mybatis에서는 만일 insert를 여러개해야하는경우 ( 배열로 들어오는 경우 )
values에 foreach문을 걸어서 insert를 할 수 있게 되어 있는데
separator를 ";"로 하게 되면 ERROR: syntax error at or near "$1" 에러를 만날 수 있다.
만약 나와 같은 코드를 사용하고 있는 경우에는
위 코드처럼 separator를 ","로 하게 되면 문제가 해결 될 것