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



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

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

save(Object obj);

persist(Object obj);

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

 

  1. Session s = HibernateUtil.getSession();
  2. Transaction tx=s.beginTransaction();
  3. s.save(entity);
  4. //tx.commit(); 此处事务没有被正常提交


对于save而言,在被调用时,Hibernate即向数据库发出一条insert语句,但最终事务没有被正常提交,则数据库执行回滚操作,将插入的记录删除

 

 

 

  1. Session s = HibernateUtil.getSession();
  2. Transaction tx=s.beginTransaction();
  3. s.persist(entity);
  4. //tx.commit(); 此处事务没有被正常提交

对于persist而言,在被调用时,Hibernate不会向数据库发出insert语句,当然记录也不会被写入数据库