J'ai une entité de cours basée sur des annotations. Quand je créais et enregistrais mes cours auparavant, ça fonctionnait bien, mais j'ai changé quelque chose et maintenant il montre une erreur que "NULL n'est pas autorisé pour la colonne" COURSE_ID "; instruction: | insert dans COURSES (course_id, course_description, course_links, course_links) des valeurs (?? null,,,) "Hibernate @GeneratedValue ne génère pas de valeur auto-incrémentée comme précédemment
@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(){
}
}
ma méthode pour les cours d'économie:
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();
}
i apprécierait toute aide.
Pour une raison quelconque, votre instruction générée n'est pas correcte, je pense, car la valeur ne sera pas générée lorsque vous passez une valeur NULL. Il ne doit pas mettre de valeur dans le champ généré automatiquement, c'est-à-dire: insérer dans les valeurs COURSES (cours_description, nom_du cours, cours_liens) (?,?,?). – eternay
Quelle base de données utilisez-vous? Êtes-vous sûr que votre base de données prend en charge la génération d'identifiants par des colonnes d'identité (par exemple Oracle ne prend pas en charge ce type de génération)? –