当前位置:   article > 正文

springboot jpa id 自增问题解决_jpa 主键自增 保存时报id不存在

jpa 主键自增 保存时报id不存在

报错如下

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.kk.entity.User

网上的很多办法都是在主键上添加 下面的注解即可解决,但是我试了很多次还是不行,仔细看了下代码,原来IDEA 自作多情的给你加了  @Id 注解到 getId() 方法上,导致Id 重复,删除这个地方即可

@GeneratedValue(strategy = GenerationType.AUTO)

完整可用代码如下:

  1. package com.kk.entity;
  2. import javax.persistence.Entity;
  3. import javax.persistence.GeneratedValue;
  4. import javax.persistence.GenerationType;
  5. import javax.persistence.Id;
  6. import java.lang.annotation.Native;
  7. @Entity
  8. public class User {
  9. @Id
  10. @GeneratedValue(strategy = GenerationType.AUTO) // 这里的注解一定要添加
  11. private Long id;
  12. private String name;
  13. private int age;
  14. public void setId(Long id) {
  15. this.id = id;
  16. }
  17. // @Id 这里的注解一定要去掉,只保留成员变量上的注解即可
  18. public Long getId() {
  19. return id;
  20. }
  21. public User() {
  22. }
  23. public User(String name, int age) {
  24. this.name = name;
  25. this.age = age;
  26. }
  27. public String getName() {
  28. return name;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public int getAge() {
  34. return age;
  35. }
  36. public void setAge(int age) {
  37. this.age = age;
  38. }
  39. @Override
  40. public String toString() {
  41. return "User{" +
  42. "id=" + id +
  43. ", name='" + name + '\'' +
  44. ", age=" + age +
  45. '}';
  46. }
  47. }

再次运行即可解决问题

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号