Hibernate: Session对象中的两个保存记录的方法 save vs. persist

来源:互联网 发布:身份证ocr识别软件 编辑:程序博客网 时间:2024/06/11 01:18

在Hibernate框架中,Session类中有两个方法可以将一个domain实例向数据库中存入

save(Object obj);

persist(Object obj);

这两种方式几乎没有任何的不同,唯独一点

Session s = HibernateUtil.getSession();Transaction tx=s.beginTransaction();s.save(entity);//tx.commit(); 此处事务没有被正常提交
对于save而言,在被调用时,Hibernate即向数据库发出一条insert语句,但最终事务没有被正常提交,则数据库执行回滚操作,将插入的记录删除


Session s = HibernateUtil.getSession();Transaction tx=s.beginTransaction();s.persist(entity);//tx.commit(); 此处事务没有被正常提交
对于persist而言,在被调用时,Hibernate不会向数据库发出insert语句,当然记录也不会被写入数据库