使用场景

  • 需要使用lambdaUpdate更新数据
  • 实体类中的类型与数据库不匹配

解决办法

  • 使用set(R column, Object val, String mapping)方法
    /**
     * 设置 更新 SQL 的 SET 片段
     *
     * @param column  字段
     * @param val     值
     * @param mapping 例: javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler
     * @return children
     */
    default Children set(R column, Object val, String mapping) {
        return set(true, column, val, mapping);
    }

示例

  • 假设用户表中存在字段名hobbies,字段类型jsonb
			lambdaUpdate().eq(User::getId, user.getId())
                .set(SysSchool::getHobbies, user.getHobbies(),"typeHandler=com.xxx.handler.JsonbTypeHandler")
                .update();

更多推荐