需求用到jpa update 写原生sql 数据库为oracle
有一个参数是String类型的id集合
最开始考虑用字符串拼接的方式将id拼成想象中的样子
// id集合
List<String> ids;
StringBuilder sb = new StringBuilder("(");
ids.forEach(id -> {
sb.append("'" + id + "'");
sb.append(",");
});
// 去除最后一个逗号
sb.deleteCharAt(sb.length() - 1);
sb.append(")");
// 拼接结果为 ('id1','id2')
// jpa注解
@Query(nativeQuery = true, value = "update table set column = value where id in :ids")
Integer updateColumn(String ids);
结论为不可行 这个参数没有任何作用
网上找了部分方法 好多都是各种拼接测试内容
最终测试将代码改为
// id集合
List<String> ids;
// jpa注解
@Query(nativeQuery = true, value = "update table set column = value where id in :ids")
Integer updateColumn(List<String> ids);
结论为可行 原来写原生的sql jpa也会帮忙处理下