在事务中仅更新大型业务对象的 1 个字段的最佳方法是什么?
我所处的情况是,我必须执行交易主详细信息记录(删除先前详细信息、插入新详细信息、更新主状态)
- 主业务对象有 20 字段
- 详细信息业务对象 只有 4 个字段
现在我只需更新主表中的 1 个字段和详细信息表中的 4 个字段即可插入。
如果我初始化一个新的主对象,则简单的更新会浪费 19 个字段。我该怎么做才能有效地处理这种情况?
我可以创建一个新对象并仅继承主业务对象的一个字段吗?如果您建议我使用 DTO 或具有继承性的东西,请给我一些工作示例。谢谢。
I am in a situation where I have to perform a transaction master detail record (Drop prev details, insert new details, Update Master status)
- Master Business Object has 20
fields - Details Business Object
has 4 fields only
Now I have to update only 1 field in master table and 4 fields in details table for insert.
If I initialize a new master object, 19 fields are being wasted for a simple update. What do I do to efficiently handle this situation ?
Can I make a new object and inherit only one field from my master business object ? Please give me a little working example if you advise me a DTO or something with inheritance. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我猜你的意思是公开这 4 个字段,而不是继承它们,因为你不能真正继承字段,只能继承一个类。
您可以制作一个更小、更简单的“更新对象”,但只有当这个较小的对象在逻辑上也存在于您的模型中时,我才会这样做。理想情况下,您确实不想创建特殊对象来仅更新部分业务对象。相反,持久层的任务是足够聪明,知道哪些字段已更改并相应地采取行动(即仅更新这些字段)。
总之:
I guess you mean exposing those 4 fields, instead of inheriting them since you cannot really inherit fields, only a class.
You could make a smaller, simpler 'update object', but I would only do so if this smaller object also exists logically in your model. Ideally, you really don't want to create special objects for updating only parts of your business objects. Instead, it's the task of your persistence layer to be smart enough to know which fields have changed and act accordingly (ie only update those fields).
So in summary:
使用这 4 个字段创建 DTO。 UI 会将此 DTO 发送到业务层,业务层将使用新值来修改业务对象。比你坚持修改后的业务对象。
Create DTO with those 4 fields. UI will send this DTO to business layer which will use new values to modify business object. Than you persist that modified business object.