[英]Hibernate @GeneratedValue doesn't generate autoincremented value as it done before
我有一个基于注释的课程实体。 当我之前创建并保存课程时,它运行良好,但是我做了一些更改,现在它显示了一个错误,“列COURSE_ID”不允许为NULL;声明:|插入课程(course_id,course_description,course_name,course_links)值(null,?,?,?)”
@Entity
@Table(name = "COURSES")
public class Courses {
@Id
@GeneratedValue
@Column(name = "course_id")
private int id;
@Column(name = "course_name", nullable = false)
private String courseName;
@Column(name = "course_description")
private String courseDescription;
@Column(name = "course_links")
private String links;
public void setCourseDescription(String courseDescription) {
this.courseDescription = courseDescription;
}
public void setLinks(String links) {
this.links = links;
}
public String getCourseDescription() {
return courseDescription;
}
public String getLinks() {
return links;
}
/// constructor
public Courses(String courseName, String courseDescription, String links) {
this.courseName = courseName;
this.courseDescription = courseDescription;
this.links = links;
}
@Override
public String toString() {
return "Courses{" + "id=" + id + ", courseName=" + courseName + ", courseDescription=" + courseDescription + ", links=" + links + '}';
}
public void setId(int id) {
this.id = id;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public int getId() {
return id;
}
public String getCourseName() {
return courseName;
}
public Courses(){
}
}
我保存课程的方法:
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
public void save(Courses course) {
Session session = sf.openSession();
Transaction transaction = session.beginTransaction();
session.save(course);
session.flush();
transaction.commit();
session.close();
}
我将不胜感激任何帮助。
缺少策略部分:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "course_id")
private int id;
当我重新创建表时,它不使用@generatevalue。 我删除了我的表,并通过h2控制台再次创建了该表,并将auto_increment写入ID字段。 现在它可以正常工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.