Hibernate04-持久对象生命周期.pdf
文本预览下载声明
1
教学讲义
2
持久化对象生命周期
持久化对象的生命周期,是 Hibernate 应用中的一个关键概念。对生命周期的理解
和掌握,对Hibernate 的正确应用很有好处。
持久化对象生命周期中有3 种状态:Transient [‘trænziənt] (瞬时状态),Persistent
[pə’sistənt] (持久状态),Detached [dɪ’tætʃt] (游离状态)
1. 准备工作
为了说明问题 ,我们需要在数据库中准备一张表,如下图,表的主键为自动增长。
下面是该表所对应的java 类
public class Student implements java.io.Serializable {
private Integer id;
private String name;
private Integer age;
private String address;
// 省略getter 和setter 以及构造方法
}
类与表的映射文件
3
hibernate-mapping
class name=com.wq.hibernate.Student table =student catalog=mydb
id name=id type=java.lang.Integer
generator class=native /
/id
property name=name type =java.lang.String
column name=name length=30 not-null=true
/column
/property
property name=age type =java.lang.Integer
column name=age not-null=true
/column
/property
property name=address type =java.lang.String
column name=address
/column
/property
/class
/hibernate-mapping
2. 瞬时状态(Transient)
所谓Transient ,即对象在内存中的自由存在,它与数据库中的记录无关。如下面的
代码:
Student stu=new Student();
stu.setName(王五);
stu.setAge(23);
这里的stu 对象与数据库中的记录没有任何关联,它存放在内存中,程序结束,它将会
消失
3. 持久状态(Persistent)
实体对象处于由 Hibernate 框架所管理的状态。在这种状态下,实体对象被纳入
Hibernate 实体容器中加以管理.处于 Persistent 状态的对象,其变更将由 Hibernate 固
化到数据库中
4
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
显示全部