banner
指数爆炸

指数爆炸

我做了对饭 !
github
bilibili

MyBatis-Plus 中出现 org.apache.ibatis.binding.BindingException

已经找遍了各种 GPT,CSDN 的文章,没有看到正确的解决办法,普遍都是说 xml 文件位置问题 ……

报错代码#

  • User 类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User {
    @TableField("user_id")
    private Long userId;       // 用户ID
    @TableField("user_name")
    private String userName;   // 用户名
    @TableField("user_password")
    private String userPassword; // 用户密码
    @TableField("user_authority")
    private Integer userAuthority; // 用户权限
}
  • Mapper 接口
@Mapper
public interface UserMapper extends BaseMapper<User> {

}
  • 测试方法
@SpringBootTest
public class UserTest {
    @Autowired
    private UserMapper userMapper;

    // 根据id查询用户
    @Test
    public void testSelectById() {
        User user = userMapper.selectById(1);
        System.out.println(user);
    }
}

解决办法及原因#

由于没有在 User 实体类中指定主键,所以 selectById 方法会找不到主键

所以解决办法就是在 User 实体类中加入 @TableId 指定主键 @TableId(value = "user_id", type = IdType.AUTO)

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User {
    // 在这里加入
    @TableId(value = "user_id", type = IdType.AUTO)
    @TableField("user_id")
    private Long userId;       // 用户ID
  
    @TableField("user_name")
    private String userName;   // 用户名
    @TableField("user_password")
    private String userPassword; // 用户密码
    @TableField("user_authority")
    private Integer userAuthority; // 用户权限
}

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。