您可以让我知道在atg中ChangeAwareList和ChangeAwareMap有什么用处?它试图解决什么问题。我尝试阅读文档,但无法找到关于相同的任何细节。为什么我们使用ChangeAwareList和ChangeAwareMap
2
A
回答
2
ChangeAwareList
和ChangeAwareMap
确保父代RepositoryItem
在更新父项时已添加或删除关系,以确保新关系从数据库中插入/删除。
如果ChangeAwareList
和ChangeAwareMap
没有被使用,那么当父项被更新/存储到存储库/数据库时,那么你将不得不有一些逻辑循环每个现有的关系,并将它们与更新确定哪些关系需要从数据库中删除。这比较麻烦,而且执行效果不如“变化意识”。
这是观察者设计模式的一个例子。
+0
感谢您的回复,所以只需确认ChangeAwareSet,ChangeAwareMap只是为了跟踪更改。我已经看到一些例子,我们使用ChangeAware集合从存储库中读取数据,所以只是想知道为什么它应该用于阅读。另外在某些情况下,我们在尝试更改为普通设置和Map时遇到了类转换异常。 – Hari
相关问题
- 1. 装配需要什么?为什么我们使用它们?
- 2. 为什么我们使用Groovy中
- 3. 为什么我们使用内部类?
- 4. 为什么我们要使用HttpContext.Current?
- 5. 为什么我们需要使用prompt.start()?
- 6. 为什么我们使用ViewTreeObserver#addOnGlobalLayoutListener()
- 7. 为什么我们使用setLayoutParams?
- 8. 为什么我们使用MapSqlParameterSource
- 9. 为什么我们使用@ html.action(string,object)?
- 10. 为什么我们使用.htaccess文件?
- 11. 为什么我们使用Gtk :: TreeModel :: ColumnRecord
- 12. 为什么我们使用jquery.klass?
- 13. 我们为什么要使用NSOperationQueue?
- 14. 为什么我们使用end Function?
- 15. 为什么我们使用canvas.save或canvas.restore?
- 16. 为什么我们在jQuery中使用“({})”?
- 17. 为什么我们需要使用ExitWindowsEx
- 18. 为什么我们使用system.out.flush()?
- 19. 为什么我们使用SimpleLoadTimeWeaver?
- 20. 为什么我们使用tq_struct?
- 21. 为什么我们使用tf.name_scope()
- 22. 为什么我们使用Response.ClearHeaders()?
- 23. 为什么我们使用cellIdentifier?
- 24. 为什么我们使用SpreadsheetApp.flush();?
- 25. 为什么我们使用NLS_INSTANCE_PARAMETER?
- 26. 为什么我们使用var _show = false;
- 27. 为什么我们使用SWIFT
- 28. 为什么我们使用@staticmethod?
- 29. 为什么我们使用docker-registry?
- 30. 为什么我们特别使用JMS?
简单的效率 - 允许您更新存储库项目的多值属性。 – bated