关于在hibernate中检索数据

时间:2012-12-25 10:43:34

标签: java hibernate

我在MyEclipse IDE中编写了这个hibernate程序。我想从学生表中检索数据并在控制台中显示,我想检索主键值为2的行(我输入数据库中的表) 我得到以下异常: 线程“main”中的异常org.hibernate.MappingException:未知实体: java.lang.Integer中

程序:

package info.inetsolv;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class HibJavaPrgm {
public static void main(String[] args) {

 Configuration cfg = new Configuration();
 cfg.configure();
 SessionFactory sf = cfg.buildSessionFactory();
 Session hsession = sf.openSession();
 Transaction ts = hsession.beginTransaction();

 Student stu=new Student();

 hsession.load(2,stu);

 ts.commit();
 hsession.close();
 sf.close();
}

}

2 个答案:

答案 0 :(得分:1)

您可以使用两种Session.load()方法:

  

load(Class theClass,Serializable id)

     

返回具有给定标识符的给定实体类的持久化实例,假设该实例存在。

  

load(Object object,Serializable id)

     

将与给定标识符关联的持久状态读取到给定的瞬态实例中。

这些方法都没有将ID作为第一个参数。

你想要

Student student = (Student) session.load(Student.class, 2);

Student student = new Student();
session.load(student, 2);

答案 1 :(得分:1)

而不是:

Student stu=new Student();

hsession.load(2,stu);

应该是:

Student stu = (Student) hsession.load(Student.class, 2);