在应用程序模块的钝化/激活周期内,框架也会钝化并激活视图对象。 通常,框架保存有关VO状态,当前行,绑定变量值等的信息。 但是没有数据。 激活视图对象后,将重新执行VO的查询,并重新获取数据。 在大多数情况下,查询执行不会在激活阶段期间或之后立即执行,而是推迟到真正使用视图对象之前执行。 这种行为是很合逻辑的。 假设我们的应用程序由几个页面组成,这些页面代表不同视图对象的数据。 如果我们从同一页面向服务器发送请求,我们将执行仅在该页面上使用的VO。 其他页面上使用的所有其他视图对象也将被钝化和激活。 但是直到我们要求框架通过导航到特定页面来做到这一点,它们才将被重新执行。 那太酷了! 这意味着我们不会执行不必​​要的查询,也不会浪费内存。 但是在某些情况下,框架在激活阶段执行VO的查询执行却不会打扰我们是否真正使用VO。

这些情况之一是有关使用瞬态VO属性的。 常见的建议是不要钝化此类属性。 但有时会使用瞬态属性来存储一些自定义数据,并使用钝化/激活机制作为保存此数据并使之保持活动状态的便捷方法。 请谨慎使用此方法。 如果瞬态属性的任何值被钝化,则框架将在视图对象激活期间执行查询。

让我们考虑一个包含两页的示例应用程序-员工和部门。

我们使用基于SQL的只读视图对象浏览两个页面上的数据:

因此,所有VO的属性都是瞬态的,我们不会对其进行钝化。 应用程序模块池已禁用:

利用ODLA探索从“员工”页面发送的请求,我们可以看到以下内容:

在应用程序模块激活阶段没有任何查询执行。 VEmployees查询已按预期在准备模型阶段执行。

现在让我们更改VDepartments属性之一的钝化参数:

我将使用“部门”页面启动该应用程序,以便执行VDepartments VO,然后导航到“员工”页面。 从雇员页面发送下一个请求(例如对表进行排序),我们将获得以下图片:

显然,除了执行VEmployees查询之外,框架还执行VDepartments。 VDepartments在激活应用程序模块期间执行。 我们真的需要吗? 我们浪费CPU资源来执行不必要的查询,浪费内存来存储未使用的视图对象的查询集合。 该框架针对具有任何动态属性的视图对象和设置了保留视图链接访问器的主视图对象,演示了相同的行为。 因此,请注意这些功能。

而已!

参考: ADF实践博客中来自我们JCG合作伙伴 Eugene Fedorenko的具有瞬态属性的视图对象的钝化和激活 。

翻译自: https://www.javacodegeeks.com/2013/07/passivation-and-activation-of-view-objects-with-transient-attributes.html

具有瞬态属性的视图对象的钝化和激活相关推荐

  1. static和瞬态_具有瞬态属性的视图对象的钝化和激活

    static和瞬态 在应用程序模块的钝化/激活周期内,框架也将钝化并激活视图对象. 通常,框架保存有关VO状态,当前行,绑定变量值等的信息. 但是没有数据. 激活视图对象后,将重新执行VO的查询,并重 ...

  2. 解决vue中对象属性改变视图不更新的问题

    解决vue中对象属性改变视图不更新的问题 参考文章: (1)解决vue中对象属性改变视图不更新的问题 (2)https://www.cnblogs.com/buxiugangzi/p/12050165 ...

  3. vue 修改对象的值视图没有发生改变_在vue中处理对象属性改变视图不更新问题? - echart...

    ...图等等,但是这些代码比较难写,因此我们通常会用借助echarts,那你知道如何使用echarts吗?这篇文章就和大家讲讲echarts的使用方法,有一定的参考价值,感兴趣的朋友可以看看.以饼状图 ...

  4. Android应用程序窗口(Activity)的视图对象(View)的创建过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8245546 从前文可知道,每一个Activit ...

  5. 使用上下文属性将C ++对象嵌入QML

    使用上下文属性将C ++对象嵌入QML 使用上下文属性将C ++对象嵌入QML 设置一个简单的上下文属性 将对象设置为上下文属性 使用上下文属性将C ++对象嵌入QML 将QML对象加载到C ++应用 ...

  6. python 视图对象_python web框架篇:views视图函数

    Django请求的生命周期是怎样的? 简单地说,通过URL对应关系匹配 ->找到对应的函数(或者类)->返回字符串(或者读取Html之后返回渲染的字符串) 解剖起来如下: 1. 当用户在浏 ...

  7. adf4351使用_使用ADF绑定创建视图对象行CreateInsert操作

    adf4351使用 在这篇简短的文章中,我将重点介绍与在任务流中创建新记录的一种非常常见的方法有关的一个小陷阱. 让我们考虑一个简单的任务流程示例,该任务流程创建一个新的VO行,如果用户单击" ...

  8. 使用ADF绑定创建视图对象行CreateInsert操作

    在这篇简短的文章中,我将重点介绍与在任务流中创建新记录的一种非常常见的方法有关的一个小陷阱. 让我们考虑一个简单的任务流示例,该任务流创建一个新的VO行,如果用户单击"确定"按钮, ...

  9. adf开发_ADF:动态视图对象

    adf开发 今天,我想写有关动态视图对象的信息,该对象允许我在运行时更改其数据源(SQL查询)和属性. 我将使用oracle.jbo.ApplicationModule :: createViewOb ...

最新文章

  1. 一致性 Hash 算法原理总结
  2. QPixmap QImage 相互转化
  3. C/C++——打开文件存储数据的各种方式
  4. oracle 查看过程的用户,Oracle 查看 用户拥有权限的过程
  5. Java-集合第五篇Map集合
  6. php正则表达式修饰符详解
  7. 基于51单片机GPS的导航系统设计(3)---毕设论文
  8. List转JSON格式方法
  9. 写给程序员的UI设计书 (转) (三)
  10. 生成缩略图 java_java实现生成缩略图
  11. iterm2连不上阿里云服务器
  12. 解决scrapy爬虫报错 pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection
  13. 广播风暴原因可能及排除方法
  14. 【案例分享】高效率利器 - SC 频谱分析仪
  15. Android粗浅系统学习(适合入门)
  16. 搭建企业级别nexus私服
  17. Freeline 的使用
  18. 如何解压缩后缀名为zip.001,zip.002等的文件
  19. 网景R6400做无线中继服务器,不是推荐,是吐槽!网件路由器 R6400真好,好的连个简单的活你都干不好!...
  20. 优秀书籍推荐:《用户体验要素设计》

热门文章

  1. pivot sqlserver 条件_行转列之SQLSERVERPIVOT与用法详解
  2. python重定向到socket_python套接字流重定向实例汇总
  3. java_basic_review(5) java继承
  4. java ee 8 api_Java EE 8安全性API:概述
  5. aws 堆栈模板_使用Arquillian和LocalStack脱机测试AWS云堆栈
  6. chrome gwt1.7_快速提示:使用Chrome开发工具调试GWT应用程序
  7. kafka数据到flume_大数据摄取:Flume,Kafka和NiFi
  8. neo4j cypher_Neo4j:使用Cypher生成实时建议
  9. jvm 错误_JVM因“ OutOfMemory”错误而关闭-我该怎么办?
  10. java8 camel_WildFly 8的Camel子系统集成了Java EE –入门