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; // ユーザー権限
}

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。