当前使用版本(必填,否则不予处理)

3.5.2

报错信息

==> Preparing: INSERT INTO sys_users_roles (user_id, role_id, tenant_id, create_by, update_by, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?) ==> Parameters: 13(Long), 20(Long), null, 2(String), 2(String), null, null

Comment From: miemieYaho

怎么个无法插入法?

Comment From: SeasonCCC

一直为 null 像报错信息那里显示,用 saveBatch 就可以

Comment From: miemieYaho

给出你的复现demo

Comment From: SeasonCCC

  • 使用 insertBatchSomeColumn
userRoleMapper.insertBatchSomeColumn(
                createRoleIds.stream().map(roleId -> {
                    UserRoleDO entity = new UserRoleDO();
                    entity.setUserId(userId);
                    entity.setRoleId(roleId);
                    return entity;
                }).toList()
            );

Sql 最终会转化成: ==> Preparing: INSERT INTO sys_users_roles (user_id, role_id, tenant_id, create_by, update_by, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?) ==> Parameters: 21(Long), 27(Long), null, 2(String), 2(String), null, null

tenant_id 为空。

  • 使用 saveBatch
           userRoleInsertMapper.saveBatch(
                createRoleIds.stream().map(roleId -> {
                    UserRoleDO entity = new UserRoleDO();
                    entity.setUserId(userId);
                    entity.setRoleId(roleId);
                    return entity;
                }).toList()
            );

Sql 最终转化成: ==> Preparing: INSERT INTO sys_users_roles (user_id, role_id, create_by, update_by, tenant_id) VALUES (?, ?, ?, ?, 147) ==> Parameters: 23(Long), 29(Long), 2(String), 2(String)

tenant_id 成功插入

Comment From: miemieYaho

注入insertBatchSomeColumn的地方需要自己排除掉租户字段