在事务中仅更新大型业务对象的1个字段的最佳方法是什么?

我处于必须执行事务主详细记录的情况下( 删除上一页详细信息,插入新详细信息,更新主站状态

  1. Master Business Object有20个字段
  2. 详细信息Business Object仅有4个字段

现在我必须只更新主表中的1个字段和详细信息表中的4个字段以进行插入。

如果我初始化一个新的主对象,则会浪费19个字段进行简单更新。 我该怎样做才能有效地处理这种情况?

我可以创建一个新对象并仅从我的主业务对象inheritance一个字段吗? 如果你告诉我DTO或inheritance的东西,请给我一个小的工作实例。 谢谢。

我猜你的意思是暴露这4个字段,而不是inheritance它们,因为你不能真正inheritance字段,只有一个类。

你可以制作一个更小,更简单的“更新对象”,但我只会这样做,如果这个较小的对象在逻辑上也存在于你的模型中。 理想情况下,您实际上不希望创建特殊对象来仅更新业务对象的部分内容。 相反,持久层的任务是足够聪明,以便知道哪些字段已更改并相应地采取行动(即仅更新这些字段)。

总结如下:

  • 仅当更新对象也是域模型的逻辑部分时才创建更新对象
  • 信任您的持久层,看看有什么变化。

使用这4个字段创建DTO。 UI将此DTO发送到业务层,业务层将使用新值来修改业务对象。 比你坚持那个修改过的业务对象。