5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法
Posted limeOracle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法相关的知识,希望对你有一定的参考价值。
1. 持久化实体
Serializable save(Object obj) : 将obj对象变为持久化状态,该对象的属性将被保存到数据库。
void persist(Object obj) : 将obj对象转化为持久化状态,该对象的属性将被保存到数据库。
Serializable save(Object obj,Object pk) : 将obj对象保存到数据库,保存到数据库时,指定主键值。
void persist(Object obj,Object pk) : 将obj对象转化为持久化状态,保存到数据库时,指定主键值。
2. 根据主键加载持久化实体
News news = session.load(News.class,pk);
如果没有匹配的数据库记录,load()方法可能抛出HibernateException异常;如果在持久化注解中指定了延迟加载,则load()方法会返回一个未初始化的代理对象,这个代理对象并没有加载数据记录,直到程序调用该代理对象的某方法时,Hibernate才会访问数据库。
News news = session.get(News.class,pk);
提示:
1. 如果News的标识属性(identifier)时generated类型的,那么Hibernate将会在执行save()方法时自动生成标识属性值,并将标识属性值分配给该News对象,并标识属性会在save()被调用时自动产生并分配给News对象。如果News的标识属性时assigned类型的,或者时复合主键(composite key),那么该标识属性值应当在调用save()之前手动赋给News对象。
2. save()方法需要立即返回持久化对象的标识属性值,所以程序执行save()方法会立即将持久化对象对应的数据插入数据库;
3. persist()则保证当它在一个事务外部被调用时,并不立即转换成insert语句。在需要封装一个长会话流程时候,persist()方法尤为重要。
啦啦啦
以上是关于5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法的主要内容,如果未能解决你的问题,请参考以下文章
5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法
5 -- Hibernate的基本用法 --6 深入Hibernate映射
5 -- Hibernate的基本用法 --1 3 流行的ORM框架简介
5 -- Hibernate的基本用法 --4 深入Hibernate配置文件