相关疑难解决方法(0)

Hibernate中不同的保存方法有什么区别?

Hibernate有一些方法,以这种或那种方式,获取对象并将其放入数据库.它们之间有什么区别,什么时候使用哪个,为什么不存在一个知道何时使用什么的智能方法?

到目前为止我发现的方法是:

  • save()
  • update()
  • saveOrUpdate()
  • saveOrUpdateCopy()
  • merge()
  • persist()

java persistence hibernate

197
推荐指数
7
解决办法
11万
查看次数

Hibernate saveOrUpdate vs update vs save/persist

我正在努力理解hibernate方法之间的细微差别

saveOrUpdate - update - save/persist.

我知道网站上有一些类似的问题:

Hibernate中不同的保存方法有什么区别?

save和saveOrUpdate方法之间的区别是hibernate

但是看过它们之后,我没有注意到答案涵盖了在任何情况下使用这些方法产生的所有问题.我想提一下我创建的测试示例:我有一个带有记录的表USER:

id     |      company



1             Company1

2             Company2
Run Code Online (Sandbox Code Playgroud)

然后执行代码:

 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
 Transaction tx = session.beginTransaction();

 User user1 = (User) session.load(User.class, Integer.valueOf(1));
 user1.setCompany("Company3");
 User user2 = (User) session.load(User.class, Integer.valueOf(2));
 user2.setCompany("Company4");
 session.persist(user1);
 session.save(user2);

 tx.commit();
Run Code Online (Sandbox Code Playgroud)

我在数据库中看到:

id     |      company



 1             Company3

 2             Company4
Run Code Online (Sandbox Code Playgroud)

我注意到save并且persist在这种情况下执行与saveOrUpdate或相同的任务.update因此,我的问题是什么是它们之间的差异以及何时saveOrUpdateupdate必要.我说得对,与savepersist不更新相关的对象,即使使用Cascade

database persistence hibernate

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

hibernate ×2

persistence ×2

database ×1

java ×1