首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字段'user_id‘没有默认值,但已设置为auto_increment

字段'user_id‘没有默认值,但已设置为auto_increment
EN

Stack Overflow用户
提问于 2019-11-13 02:08:01
回答 2查看 413关注 0票数 1

因此,我正在尝试构建一个餐饮计划程序,但当我尝试提交用户名时,它会显示标题中显示的错误。我尝试向我的类添加额外的映射,我为User类创建了一个新的存储库,但我不确定为什么程序没有像它应该的那样自动递增user_ID值。

下面是我的令人不快的mySQL表:

代码语言:javascript
复制
CREATE TABLE `user_table` (
  `user_id` int NOT NULL AUTO_INCREMENT,
  `user_name` varchar(30),
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

下面是User类:

代码语言:javascript
复制
@Entity
@Table(name="user_table")
public class User {

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="user_ID")
    private int userID;

    @Column(name="user_name")
    private String userName;

    public User() {
        super();

        // TODO Auto-generated constructor stub
    }

    public User(int userID, String userName) {
        super();
        this.userID = userID;
        this.userName = userName;
    }

    public int getUserID() {
        return userID;
    }
    public void setUserID(int userID) {
        this.userID = userID;
    }
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Override
    public String toString() {

        return "User [userID=" + userID + ", userName=" + userName + "]";
    }
}

用户类附加到的存储库:

代码语言:javascript
复制
@Repository
public interface MealPlannerRepositoryUser extends JpaRepository<User, Long>{

}

以及我的控制器类中的相关方法:

代码语言:javascript
复制
    @Autowired
    MealPlannerRepository repo;

    @Autowired
    MealPlannerRepositoryUser userRepo;

    @GetMapping("/inputUser")
    public String addNewUser(Model model) {
        User u = new User();
        Meal m = new Meal();
        model.addAttribute("newUser", u);
        model.addAttribute("newMeal", m);
        return "inputUser";
    }

    @PostMapping("/inputUser")
    public String addNewUser(@ModelAttribute User u, Meal m, Model model) {
        userRepo.save(u);
        repo.save(m);
        model.addAttribute("newUser", repo.findAll());
        model.addAttribute("newMeal", repo.findAll());
        return "results";
    }

我一定是漏掉了什么,但我没办法了。

EN

回答 2

Stack Overflow用户

发布于 2019-11-13 02:10:26

我不确定这是否区分大小写,但是User类中的注释@ column ( 'user_id‘)与您的SQL查询中的列名’user_id‘不匹配。

票数 1
EN

Stack Overflow用户

发布于 2019-11-14 14:36:26

实体类user_id与列名user_ID不匹配,请在实体类user_id中进行更改

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58824345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档