Hibernate中save()和persist()之间的区别

Save()和persist()这两种方法都用于在数据库中保存对象。 

根据文档-

Save()-坚持给定的瞬时实例,首先分配一个生成的标识符。(或者,如果使用分配的生成器,则使用标识符属性的当前值。)如果关联是用cascade =“ save-update”映射的,则此操作将级联到关联的实例。

根据文档-

persist()-使瞬态实例持久化。如果关联是用cascade =“ persist”映射的,则此操作将级联到关联的实例。该方法的语义由JSR-220定义。 

序号

救()
坚持()

1

基本的 

 它将对象存储在数据库中

它还将对象存储在数据库中

2

返回类型 

它返回生成的ID,并且返回类型可序列化 

它不返回任何东西。它的void返回类型。 

3

事务边界 

它可以将对象保存在边界内和边界外 

它只能在事务边界内保存对象 

4。

分离物体 

它将在表中为分离对象创建新行  

它将为分离对象抛出持久性异常 

5,

支持者 

只有Hibernate支持 

JPA也支持它

在Hibernate中保存的示例

@Entity
public class User {
   @Id
   Integer id;
   String name;
   public Integer getId() {
      return id;
   }
   public void setId(Integer id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.journaldev.hibernate.util.HibernateUtil;
public class SaveExample {
   public static void main(String[] args) {
      //获取会话工厂以开始事务
      SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
      Session session = sessionFactory.openSession();
      Transaction tx = session.beginTransaction();
      User user = new User();
      user.setId(1)
      user.setName("ABCD")
      session.save(user);
      //关闭资源
      tx.commit();
      sessionFactory.close();
   }
}

在Hibernate中坚持的例子

@Entity
public class User {
   @Id
   Integer id;
   String name;
   public Integer getId() {
      return id;
   }
   public void setId(Integer id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.journaldev.hibernate.util.HibernateUtil;
public class PersistExample {
   public static void main(String[] args) {
      //获取会话工厂以开始事务
      SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
      Session session = sessionFactory.openSession();
      Transaction tx = session.beginTransaction();
      User user = new User();
      user.setId(1)
      user.setName("ABCD")
      session.persist(user);
      //关闭资源
      tx.commit();
      sessionFactory.close();
   }
}