博为峰Java技术文章 ——JavaEE Hibernate修改数据

博为峰小博老师:

Hibernate的Session的管理中,如果程序对持久化状态的对象做出了修改,当Session刷出时Hibernate会对实例进行持久化操作,利用Hibernate的该特性就可以实现商品信息的修改操作。

Session的刷出(flush)过程是指Session执行一些必需的SQL语句来把内存中的时象的状态同步到JDBC中。刷出会在某些查询之前执行,在事务提交时执行,或者在程序中直接调用Session.flush()时执行。

publicclassBWF{

publicstaticvoidmain(String[] args) {

Sessionsession= HibernateUtil.getSession();//获取Session

session.beginTransaction();

Product product=(Product)session.get(Product.class, 100001);

product.setPrice(299);

product.setName("促销女士牛仔裙");

product.setRemark("促销");

session.flush();//刷新提交

session.getTransaction().commit();

HibernateSessionFactory.closeSession();//关闭Session

}

}

数据更改前:

数据更改后:

hibernateflush与update区别

lupdate操作的是在自由态或脱管状态(detached,因为session关闭而处于脱管的状态)。

lflush操作则必须要求对象在持久态(persistent).

l默认情况下一个持久态(persistent)对象的修改是不需要手动调用update,方法的,只要改了对象的值,那么在session关闭时,会自动调用flush对已经修改的持久态(persistent)对象进行update

lHibernate中用get方法得到一个对象,并对这个对象进行修改,如果不打开事务是不会自动对这个对象进行保存,就是调用flush方法也不会进行保存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容