栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

正确使用Session.persist()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正确使用Session.persist()

是的,这是的合同的一部分

Session.persist()
。根据Hibernate文档,这是执行SQL的顺序:

  1. 按执行顺序插入
  2. 更新
  3. 删除收集元素
  4. 插入收集元素
  5. 按执行顺序删除

该顺序是官方Hibernate API的一部分,应用程序在操纵其实体图时会依赖它。

Session.persist()
立即在
INSERT
语句后进行更改会破坏该合同,并在某些用例中引起问题。

假设我们有一个

User
实体,并且两个用户可能以某种方式彼此关联。然后,我们可以将两者插入一个事务中:

persist(user1);persist(user2);user1.setPartner(user2);user2.setPartner(user1);

如果所有内容都存储在

INSERT
语句中,则在持久化时会违反外键约束
user1

通常,通过确保仅传递给的状态以

persist
结束
INSERT
,Hibernate为我们提供了更大的灵活性来满足基础数据库的约束。

我不知道可以更改此行为的任何配置。当然,正如您提到的,

persist
只要不违反数据库约束,就可以重组代码,以便在设置所有值之后调用该代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号