场景:使用-plus进行批量新增或更新操作时,发现后台日志只根据一个主键进行更新,实体类将两个主键都加上@TableId时,运行报错。
解决:引入了,下面贴出解决代码
实体类(主要是将@TableId都改为@TableFiled,并将主键字段加上@MppMultiId注解)
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
/**
* <p>
* 视图头设定表
* </p>
*
* @author wangshuai1
* @since 2022-03-03
*/
@TableName("dc_view_header_user")
@ApiModel(value = "DcViewHeaderUser对象", description = "用户视图头设定表")
public class DcViewHeaderUser implements Serializable{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
@MppMultiId
@TableField("RECORDID")
private String recordid;
@ApiModelProperty(value = "用户id")
@MppMultiId
@TableField("USER_ID")
private String userId;
}
Mapper(改为继承MppBaseMapper)
package ;
import ;
import ;
import ;
import ;
import ;
/**
* <p>
* 视图头设定表 Mapper 接口
* </p>
*
* @author wangshuai1
* @since 2022-03-03
*/
@Repository
public interface DcViewHeaderUserMapper extends MppBaseMapper<DcViewHeaderUser> {
}
Service(继承IMppService)
package ;
import ;
import ;
import ;
/**
* <p>
* 视图头设定表 服务类
* </p>
*
* @author wangshuai1
* @since 2022-03-03
*/
public interface DcViewHeaderUserService extends IMppService<DcViewHeaderUser> {
/**
}
实现类(继承MppServiceImpl)
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import org.;
import org.;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import .*;
import ;
import ;
import ;
import ;
/**
* <p>
* 视图头设定表 服务实现类
* </p>
*
* @author wangshuai1
* @since 2022-03-03
*/
@Service
public class DcViewHeaderUserServiceImpl extends MppServiceImpl<DcViewHeaderUserMapper, DcViewHeaderUser> implements DcViewHeaderUserService {
}
最后,记得项目的运行类需要加上@EnableMPP,开启MPP
@SpringBootApplication
//开启事务
@EnableTransactionManagement
//开启定时器
@EnableScheduling
@ServletComponentScan
@MapperScan(value = {".**.dao"}, nameGenerator = )
//扫描包下bean,自定义BeanName生成策略, 解决不同包下同名类问题
@ComponentScan(basePackages = {""}, nameGenerator = )
@EnableAsync //开启异步注解功能
//支持MPP
@EnableMPP
public class BDPWebApplication extends SpringBootServletInitializer {
}