我正想通过Hibernate文档和文件说,休眠,需要我们所有的持久化类无参数的构造函数:Hibernate的无参数的构造函数
的无参数的构造是所有的持久 要求班; Hibernate必须使用Java 反射来为您创建对象。构造函数可以是私有的,但是包或公开 运行时代理生成需要可见性,而没有字节码检测的高效数据 。
但是,当我创建了一个示例程序进行测试通过创建无任何无参构造一个POJO类,并通过将一个构造函数的参数,我预计Hibernate会抛出一个异常,但我很惊讶地看到,我没有得到例外。
这里是我的POJO:
public class Event {
private Long id;
private String title;
public Event(String title) {}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
这里是我的程序:
import org.hibernate.Session;
import java.util.*;
import org.hibernate.tutorial.domain.Event;
import org.hibernate.tutorial.util.HibernateUtil;
public class EventManager {
public static void main(String[] args) {
EventManager mgr = new EventManager();
mgr.createAndStoreEvent("My Event", new Date());
HibernateUtil.getSessionFactory().close();
}
private void createAndStoreEvent(String title, Date theDate) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Event theEvent = new Event("");
theEvent.setTitle(title);
theEvent.setDate(theDate);
session.save(theEvent);
session.getTransaction().commit();
}
}
我也配置Hibernate配置和映射文件。现在我可以看到,当我执行这个程序时,新的记录存储在我的数据库中。
我是Hibernate的新手,请帮助我理解hibernate文档中给出的语句,因为文档说我们需要一个无参数构造函数。我正在使用Hibernate 3.x版本。
如果您尝试从数据库读取对象,该怎么办? –