使用 MyBatis 更新 foreach
Using MyBatis Update with foreach
我正在努力处理 MyBatis 中的更新语句。我想将多个字符串放在一行中:
UPDATE MY_FILTERS
SET
GROUPS =
<foreach item="item" collection="selectedGroups" open="" separator="," close="">
#{item}
</foreach>,
TEMPLATES =
<foreach item="item" collection="selectedTemplates" open="" separator="," close="">
#{item}
</foreach>
where ID = #{id}
我尝试了以下替代方法:
open = "'" close = "'"
或
separator = "','"
但仍然出现这样的异常:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification
### The error may involve my.mybatis.PRPMapper.saveParamsToDB-Inline
### The error occurred while setting parameters
### SQL: UPDATE MY_FILTERS SET GROUPS = ? , ? , TEMPLATES = ? , ? where ID = ?
### Cause: java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification ; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification javax.faces.event.AbortProcessingException: org.springframework.jdbc.BadSqlGrammarException:
试试
open = "'" close = "'"
和
separator = ","
和
${item}
通过这些设置,mybatis 不绑定变量,而是执行字符串替换。请注意,字符串替换容易受到 sql 注入的攻击。如果您遇到更多问题,请 post 由 mystatis
构建的更新 sql 查询
我正在努力处理 MyBatis 中的更新语句。我想将多个字符串放在一行中:
UPDATE MY_FILTERS
SET
GROUPS =
<foreach item="item" collection="selectedGroups" open="" separator="," close="">
#{item}
</foreach>,
TEMPLATES =
<foreach item="item" collection="selectedTemplates" open="" separator="," close="">
#{item}
</foreach>
where ID = #{id}
我尝试了以下替代方法:
open = "'" close = "'"
或
separator = "','"
但仍然出现这样的异常:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification
### The error may involve my.mybatis.PRPMapper.saveParamsToDB-Inline
### The error occurred while setting parameters
### SQL: UPDATE MY_FILTERS SET GROUPS = ? , ? , TEMPLATES = ? , ? where ID = ?
### Cause: java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification ; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-01747: invalid user.table.column, table.column, or column specification javax.faces.event.AbortProcessingException: org.springframework.jdbc.BadSqlGrammarException:
试试
open = "'" close = "'"
和
separator = ","
和
${item}
通过这些设置,mybatis 不绑定变量,而是执行字符串替换。请注意,字符串替换容易受到 sql 注入的攻击。如果您遇到更多问题,请 post 由 mystatis
构建的更新 sql 查询