Hibernate中Session对象一些方法的小区分
2011-02-24 15:29
134 查看
1.load()与get()的区别:
session.get(Class clazz,int id);get方法包含两个参数,Class是某一个类的结构,可以通过java的反射机制获取到,id是hibernate创建表的主键的id ,查询的时候根据class查到映射文件,并通过映射文件找到数据库中表的名称,通过id查到此表中的这条数据。
session.load(Class clazz,int id);Load中的参数和get方法中一样的,只是掉用此方法返回的Object对象已不是原先的class对象,而是类的代理对象,也就是它的子类,但这个子类包含了更强大的实现功能,其中就包括查询数据库的方法,但是查询的操作不会立即执行,只有在需要访问这条数据时候才会执行查询数据操作,这样就减少了不必要的计算机性能。
2.persist方法和save()方法区别
唯一的区别在于事务的开启上面:save方法是在没开启事务的情况下,插入数据库之后就立即进行回滚,而persist()方法是如果没有开启事务,就不会执行插入数据库的操作。
3.saveOrUpdate()方法与merge()方法
hibernate中对象有三种状态:瞬时,持久和脱管(游离),当对象的状态由持久态变为游离态的时候,再改变对象的属性是不会更新到数据库的,因为当前的session已经关闭,但是仍要更新到数据库,就要调用更新方法,使数据更新,但是如果传过来的对象不清楚是瞬时态还是脱管态,这时就要调用saveOrUpdate()方法了,当前对象就会由托管状态变为持久状态,并更新到数据库,而如果当前调用merge()方法也会更新数据,但是此对象仍会是托管状态的。
但是hibernate又是如何知道当前对象是瞬时态还是脱管态的呢?
每个对象在保存或者更新之后hibernate都会自动分配int类型或者string类型的属性,当变为托管状态的时候,此属性仍然存在,可以判断此属性的值,如果为0或者为字符串null则此对象就为瞬时态,否则就为脱管态。
session.get(Class clazz,int id);get方法包含两个参数,Class是某一个类的结构,可以通过java的反射机制获取到,id是hibernate创建表的主键的id ,查询的时候根据class查到映射文件,并通过映射文件找到数据库中表的名称,通过id查到此表中的这条数据。
session.load(Class clazz,int id);Load中的参数和get方法中一样的,只是掉用此方法返回的Object对象已不是原先的class对象,而是类的代理对象,也就是它的子类,但这个子类包含了更强大的实现功能,其中就包括查询数据库的方法,但是查询的操作不会立即执行,只有在需要访问这条数据时候才会执行查询数据操作,这样就减少了不必要的计算机性能。
2.persist方法和save()方法区别
唯一的区别在于事务的开启上面:save方法是在没开启事务的情况下,插入数据库之后就立即进行回滚,而persist()方法是如果没有开启事务,就不会执行插入数据库的操作。
3.saveOrUpdate()方法与merge()方法
hibernate中对象有三种状态:瞬时,持久和脱管(游离),当对象的状态由持久态变为游离态的时候,再改变对象的属性是不会更新到数据库的,因为当前的session已经关闭,但是仍要更新到数据库,就要调用更新方法,使数据更新,但是如果传过来的对象不清楚是瞬时态还是脱管态,这时就要调用saveOrUpdate()方法了,当前对象就会由托管状态变为持久状态,并更新到数据库,而如果当前调用merge()方法也会更新数据,但是此对象仍会是托管状态的。
但是hibernate又是如何知道当前对象是瞬时态还是脱管态的呢?
每个对象在保存或者更新之后hibernate都会自动分配int类型或者string类型的属性,当变为托管状态的时候,此属性仍然存在,可以判断此属性的值,如果为0或者为字符串null则此对象就为瞬时态,否则就为脱管态。
相关文章推荐
- Spring和Hibernate集成的HibernateTemplate的一些常用方法总结
- hibernate的session对象中save()和update()方法的区别
- Hibernate中的session对象update方法的使用
- 08-Hibernate实战 Session中的一些重要的方法
- hibernate中使用session对象获得持久化对象get和load方法的区别
- hibernateDaoSupport中的一些公用常用方法
- Hibernate : Load get 方法使用 上的一些问题
- hibernate的一些异常原因及解决方法
- Spring和Hibernate集成的HibernateTemplate的一些常用方法总结
- Hibernate增删改查一些方法的区别
- Spring和Hibernate集成的HibernateTemplate的一些常用方法总结
- HibernateTemplate的一些常用方法总结
- Hibernate 中一些方法的使用___getHibernateTemplate()的用法
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解
- 总结一些分页查询的方法SQL server,MySQL,oracle数据库及hibernate中
- hibernate中PO对象的三种状态分析以及session中的一些方法的区别
- hibernate经常使用的一些方法
- Spring和Hibernate集成的HibernateTemplate的一些常用方法总结
- hibernateDaoSupport中的一些公用常用方法
- 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好