只读ViewObject和声明性SQL模式

介绍

声明式SQL模式被认为是基于实体的视图对象的最有价值的优点之一。 在此模式下,根据UI中显示的属性在运行时生成VO的SQL。 例如,如果某个页面包含一个只有两列EmployeeId和FirstName的表,则查询将生成为“从Employees中选择Employee_ID,First_Name”。 此功能可以大大提高ADF应用程序的性能。 但是, 只读或基于SQL的视图对象呢? JDeveloper不允许您为基于SQL的VO选择SQL模式。 完全可以使用“专家”模式,而没有机会即时生成查询。 但是,一切皆有可能。

在这篇文章中,我们有一些基于SQL的视图对象VEmployees的示例:

让我们生成“视图对象定义”类:

我们将重写一些方法:

@Overridepublic boolean isRuntimeSQLGeneration(){return true;}@Overridepublic boolean isFullSql(){return false;}@Override//In our case we know exactly the clause FROMpublic String buildDefaultFrom(AttributeDef[] attrDefs,SQLBuilder builder,BaseViewCriteriaManagerImpl vcManager){return "Employees";}@Override//Setting "Selected in Query" property for each attribute except PKprotected void createDef(){for (AttributeDef at : getAttributeDefs()) if (!at.isPrimaryKey()) ((AttributeDefImpl) at).setSelected(false);   }

其实就是这样! 让我们测试一下。

对于显示完整属性集的页面,我们得到结果:

并生成查询(我使用ODL分析器):

对于只有两个属性的页面,我们得到以下结果:

和查询:

本文的示例应用程序需要JDeveloper 11.1.2.1.0和标准HR模式。

参考:来自ADF实践博客的JCG合作伙伴 Eugene Fedorenko的只读ViewObject和声明性SQL模式 。


翻译自: https://www.javacodegeeks.com/2012/07/read-only-viewobject-and-declarative.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 360加固 例子,[原创]利用VirtualApp实现360加固的soHook简单例子

简单demo,为抛砖引玉吧!360的加固我们先写一个最简单的so,带导出函数。这已经足够简单了,界面上打印这个值。运行起来就这样。简单的简直过分。好了,现在我们让360加固一下。拿下来自己签名下,安装好&#…

scrapy架构解析

转载于:https://www.cnblogs.com/tianboblog/p/6986695.html

华为怎么升级Android11,华为EMUI 11/安卓11升级名单曝光 快来看看你的手机是否支持...

华为EMUI 11/安卓11升级名单曝光 快来看看你的手机是否支持2020年02月10日 16:29作者:NJNR205文章出处:泡泡网原创分享2月10日消息,据外媒报道,华为将于今年3月份的华为开发者大会(HDC)上正式宣布新一代EMUI 11。众所周知&#xf…

Scala安装及开发环境搭建

最近想学习下scala,为后面转大数据做一些沉淀。 1. 首先保证jdk已经成功安装 2. 去官网下载scala安装程序 http://www.scala-lang.org/download/all.html 会列出不同的版本. 3. 安装scala 安装路径记得不要有空格否则可能会出现以下这种状况,还有&am…

简单利用HTTP中的PUT协议拿下SHELL

第一次用方法拿shell,之前遇到的都是没有写入权限的。 站太辣鸡,纯粹练手,就不打码了。 此次实战会用到的HTTP请求方法: OPTIONS,PUT,MOVE/COPPY * 战前准备 0x01 什么是OPTIONS方法? 此方法用于请求获得由…

JSF – PrimeFaces和休眠集成项目

本文介绍了如何使用JSF,PrimeFaces和Hibernate开发项目。 下面是一个示例应用程序: 二手技术: JDK 1.6.0_21 Maven的3.0.2 JSF 2.0.3 PrimeFaces 2.2.1 休眠3.6.7 MySQL Java连接器5.1.17 MySQL 5.5.8 Apache Tomcat 7.0 第1步&#xff1…

python——成语接龙小游戏

小试牛刀的简易成语接龙。 思路—— 1、网上下载成语字典的txt版本 2、通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快) 3、python程序,查找 用户输入的最后一个字和字典里首字一致的,放入列表…

计划B? 那是计划N…没什么。 拼图于2015年问世

真是一天 当典型的欧洲人逐渐破产时,美国的人们开始喝咖啡。 这就是为什么我在Mark Reinhold最近的新闻中睡个好觉的原因。 他在题为“ Project Jigsaw:火车晚点 ”的帖子中建议将Project Jigsaw推迟到下一个版本Java 9。 在最近的会议和博客文章上&…

html网页背景图片平铺代码,jQuery图片平铺效果制作网页背景图片平铺代码

插件描述:jQuery图片平铺效果制作网页背景图片平铺代码调用JS文件调用插件方法$(function(){// 插件初始化$(img).jqthumb({classname : jqthumb, // 类名. 默认是 jqthumbwidth : 100%, // 新的图像裁剪后宽度. 默认是 100px.height : 100%, // 新的图像裁剪后高度…

spring mvc 文件上传

spring mvc 文件上传 一、单文件上传 配置步骤&#xff1a; 步骤一、在配置文件中配置包扫描器&#xff08;暂且这样配&#xff0c;会出问题&#xff0c;我们下面说解决方案&#xff09; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns…

使用工厂模式解决设计问题

工厂设计模式是面向对象环境中最常用的模式之一。 再次来自“创意设计”模式类别&#xff0c;即有关对象创建的所有信息。 在某些情况下&#xff0c;对象的创建很复杂&#xff0c;可能需要某种程度的抽象&#xff0c;以便客户端代码无法意识到这些复杂性和内部实现细节。 在某些…

完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

Primefaces AutoComplete&#xff0c;JSF转换器 这篇文章从第一部分和第二部分继续。 JSF拥有Converter工具&#xff0c;可以帮助我们从用户视图中获取一些数据并将其转换为从数据库或缓存中加载的对象。 在“ com.converter”包中&#xff0c;创建以下类&#xff1a; packa…

html5首屏加载乐山暴雨,发布前端项目时因chunk-vendors过大导致首屏加载太慢,Vue Build时chunk-vendors的优化方案...

这个优化是两方面的&#xff0c;前端将文件打包成.gz文件&#xff0c;然后通过nginx的配置&#xff0c;让浏览器直接解析.gz文件。1、compression-webpack-plugin插件打包.gz文件安装插件npm install --save-dev compression-webpack-plugin或者yarn add compression-webpack-p…

交大计算机专业怎样,计算机专业高校实力排名,上海交大第五,清华第二,第一毫无争议...

原标题&#xff1a;计算机专业高校实力排名&#xff0c;上海交大第五&#xff0c;清华第二&#xff0c;第一毫无争议计算机专业在近几年可谓是“大热”&#xff0c;众多考生抢破头也想当码农&#xff0c;背后的原因其实不难理解。互联网时代的到来&#xff0c;计算机早已渗透到…

python之路-面向对象

编程范式 编程是 程序 员 用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 &#xff0c; 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合&#xff0c;正所谓条条大路通罗马&#xff0c;实现一个任务的方式有很多种不同的方式&#xff0c; 对这…

西安邮电大学计算机科学与技术有专硕吗,2020年西安邮电大学计算机学院考研拟录取名单及排名!...

20考研复试调剂群&#xff1a;4197552812020年西安邮电大学计算机学院硕士研究生招生复试成绩及综合排名各位考生&#xff1a;现将我院2020年硕士研究生招生复试成绩及综合排名公布(最终录取名单及新生学籍注册均以“全国硕士研究生招生信息公开平台”备案信息为准)&#xff0c…

检测一个点, 是否在一个半圆之内的方法

demo: http://jsbin.com/lihiwigaso 需求: 一个圆分成分部分, 鼠标滑上不同的区域显示不同的颜色 思路: 先判断这个点是否在圆之内, 再判断是否在所在的三角形之内就可以了 所需要的全部源码: <!DOCTYPE html> <html> <head><meta charset"utf-8&quo…

台式计算机风扇声音大怎么处理,如何解决电脑电源风扇声音大的问题?

现在的台式机一般用3到5年后&#xff0c;一些问题自然也就慢慢表现出来了。很多网友在使用电脑过程中都有电脑风扇声音大怎么办的问题&#xff0c;电脑风扇声音大就会让人觉得使用电脑很不舒服&#xff0c;怎么办好呢&#xff1f;出现重要的问题要如何解决好呢&#xff1f;现在…

计算机应用 winxp,2017年职称计算机考试模块WindowsXP试题

2017年职称计算机考试模块WindowsXP试题全国专业技术人员计算机应用能力考试是专业技术人员资格考试的一种。接下来应届毕业生小编为大家搜索整理了2017年职称计算机考试模块WindowsXP试题&#xff0c;希望大家有所帮助。1. Windows XP中删除某个文件的快捷方式【 A 】。A. 对原…

Python基础(8)_迭代器、生成器、列表解析

一、迭代器 1、什么是迭代 1 重复   2 下次重复一定是基于上一次的结果而来 1 l[1,2,3,4] 2 count0 3 while count < len(l): 4 print(l[count]) 5 count1 迭代举例2、可迭代对象 可进行.__iter__()操作的为可迭代对象 #print(isinstance(str1,Iterable)),判断str…