将强制可写属性的initial修饰符设置为" true"。 有什么好处吗?

2020-08-16 01:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hybris Wiki表示,将initial设置为'true'仅与write ='false'结合使用才有用。 我对此表示同意。
但是,如果我使用初始true和可选false并写入true有意义吗? 我之所以这样问是因为,我们从Hybris代码审查中获得了建议,建议您使用初始true和可选false来确保数据完整性。 我们的项目中有许多属性,可选的false和true。 当我使用此类属性添加初始true时,我没有发现任何行为变化。 我只想在这里确认一下,因为我可能遗漏了一些东西。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hybris Wiki表示,将initial设置为'true'仅与write ='false'结合使用才有用。 我对此表示同意。
但是,如果我使用初始true和可选false并写入true有意义吗? 我之所以这样问是因为,我们从Hybris代码审查中获得了建议,建议您使用初始true和可选false来确保数据完整性。 我们的项目中有许多属性,可选的false和true。 当我使用此类属性添加初始true时,我没有发现任何行为变化。 我只想在这里确认一下,因为我可能遗漏了一些东西。

付费偷看设置
发送
4条回答
路亽曱_Ryan
1楼-- · 2020-08-16 02:34

嗨,

实际上,设置initial = true的主要目的是将只读属性配置为在初始项创建时可写。 在此范围内,只有在属性也设置为write = false的情况下,才必须设置initial = true。

但是initial = true还有其他一些副作用: 在hybris平台中创建项目时,平台将分两步创建该项目。 第一步是使用对数据库的INSERT命令创建该项目的非常基本的版本。 此插入命令仅包含必需的属性值(可选= false)或设置为initial = true。 第二步,平台通过执行UPDATE命令向数据库添加所有剩余的属性值。

因此,要通过避免运行第二条UPDATE命令来提高项目创建性能,可以将在项目创建时写入的所有属性定义为initial = true。 在这种情况下,所有属性都使用第一个/初始INSERT命令写入。...

...。当然,这也对数据完整性有影响:想象一下,第一个INSERT命令成功完成,但是随后的UPDATE命令导致SQL异常...在这种情况下,您将创建一个 数据不一致的项目。

me_for_i
2楼-- · 2020-08-16 02:24

我已经在Hybris代码中看到许多实例,它们使用的是initial =" true"而没有write =" false"。 但是使用initial =" true"而不使用write =" false"的业务意义是什么?

黑丝骑士
3楼-- · 2020-08-16 02:28

但是Hybris使用相同的:)

<关系代码=" Product2ProductConfigs" localized =" false" generate =" true" autocreate =" true"> <部署表=" Product2ProductConfigs" typecode =" 9912"/> <修饰符read =" true" write =" true" search =" true"可选=" true" partof =" true"/>

clasier
4楼-- · 2020-08-16 02:29
 此插入命令仅包含必需的属性值(可选= false)...或设置为initial = true。

  

这是否意味着如果将字段标记为optional = false,那么由于强制属性和初始属性都与insert语句一起写入,则无需将其标记为initial = true?

如果是这种情况,hybris为什么要求在所有评论中将必填字段设置为初始字段?

一周热门 更多>