Ich habe eine einfache Webanwendung entwickelt, die über Hibernate mit MySQL verbunden ist. Irgendwann war es mir sogar gelungen, eine Verbindung herzustellen und das Java-Objekt in die DB einzufügen. Allerdings habe ich danach einige Änderungen vorgenommen, um meine Projektanforderungen zu erfüllen und da habe ich die Dinge durcheinander gebracht. Ich erhalte den Fehler "Kein Identifikator für die Entität angegeben", egal wie sehr ich versuche, ihn zu debuggen. Ich habe sogar ein neues Projekt von Grund auf erstellt, aber vergeblich. Bitte helfen Sie mir hier, herauszufinden, was ich falsch mache.Hibernate: Kein Bezeichner für Entität
package com.proj.beandb;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
@ManagedBean
@SessionScoped
@Entity
@Table(name="dbstat")
public class Hibernate
{
@Id
@Column(name="first_name")
private static String fname;
@Column(name="last_name")
private static String lname;
public Hibernate(){}
public Hibernate(String fname, String lname)
{
Hibernate.fname = fname;
Hibernate.lname = lname;
}
public static void main(String[] args) {
// create session factory
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
.addAnnotatedClass(Student.class)
.buildSessionFactory();
// create session
Session session = factory.getCurrentSession();
try {
// create a student object
System.out.println("Creating new object");
Hibernate tempRec = new Hibernate("bah", "blah");
// start a transaction
session.beginTransaction();
// save the object
session.save(tempRec);
// commit transaction
session.getTransaction().commit();
System.out.println("Done!");
}
finally {
factory.close();
}
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
Hibernate.fname = fname;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
Hibernate.lname = lname;
}
}
`
Aktualisieren Sie Ihre vollständige Stack-Trace, so dass wir finden können, wo ist der Fehler –
Um das Zeichenfeld als eine ID zu verwenden, müssen Sie die folgende Annotation @GeneratedValue (generator = "uuid") @GenericGenerator (name = "Uuid ", strategie =" uuid2 ") @Column (name =" PR_KEY ") private String prKey; – LearningPhase
Dies ist ein Beispiel, das Sie entsprechend Ihren Anforderungen ändern müssen – LearningPhase