私は、休止状態でMySQLに接続する簡単なWebアプリケーションを開発しました。ある時点で、私は接続を作成し、JavaオブジェクトをDBに挿入することに成功しました。しかし、その後私はプロジェクトのニーズを満たすためにいくつかの変更を加えました。どのように私がそれをデバッグしようとするに関係なく、 "エンティティの識別子が指定されていません"というエラーが表示されます。私は最初から新しいプロジェクトを作りましたが無駄でした。私が間違っていることを特定するためにここで私を助けてください。Hibernate:エンティティに識別子が指定されていません
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;
}
}
`
エラーがどこにあるのかを見つけるために完全なスタックトレースを更新してください –
文字列フィールドをIDとして使用するには、以下のアノテーションを@GeneratedValue(generator = "uuid")@GenericGenerator(name = "uuid "、strategy =" uuid2 ")@Column(name =" PR_KEY ")プライベートString prKey; – LearningPhase
上記はあなたの要件に応じて変更する必要がある例です – LearningPhase