报错如下
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)
完整可用代码如下:
package com.kk.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.lang.annotation.Native;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO) // 这里的注解一定要添加
private Long id;
private String name;
private int age;
public void setId(Long id) {
this.id = id;
}
// @Id 这里的注解一定要去掉,只保留成员变量上的注解即可
public Long getId() {
return id;
}
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
再次运行即可解决问题