ADF BC
luyushuang
本人目前热衷于Oracle ADF框架和Oracle Fusion技术。做为一个Oracle Technical Consultant,使用Oracle ADF框架为企业用户提供富企业应用的解决方案。
展开
-
ADF BC:修改 data control 名称
1,打开Application Module,General标签下;2,打开Property Inspector,找到Other属性;3,在 Data Control Name 框中输入需要的名称。 <DATA_CONTROL_NAME原创 2011-09-08 15:03:52 · 837 阅读 · 0 评论 -
ADF BC中AM的参数和配置方法
在ADF框架中,AM扮演着非常重要的角色。在将应用部署到服务器中的时候,AM的各个参数相应的也十分关键,包括考虑同时在线的用户数、Session失效时间、数据库连接等等。1,AM中各个参数的定义可以参考ADF Fusion Developer Guide中相关章节;也可参考:Understanding Application Module Pooling Concepts and Config原创 2011-10-29 22:30:53 · 1454 阅读 · 0 评论 -
ADF中过滤数据的方法(三)
要实现在ADF中过滤数据,可以在VO中定义where语句,也可以声明式定义ViewCriteria。使用声明式定义ViewCriteria是比较受推荐的方法,该方法不需要自己写SQL语句;另外,在页面中可以依据ViewCriteria来创建Query Panel,简化页面中查询区域的开发。1,学习使用ViewCriteria可以参考Andrejus的Sample:Applying Vi原创 2011-11-13 21:16:59 · 1032 阅读 · 0 评论 -
TROUBLESHOOTING: 行数据不一致异常[RowInconsistentException]
关键字:oracle.jbo.RowInconsistentException JBO-25014 其他用户已更改具有主键 XXX 的行 异常现象:在ADF中新建或者更新数据的时候,进行连续的Commit操作,第一次成功,接着会出现JBO-25014异常。 异常原因:在比较EO Cached Entity与数据库中的值的时候,出现不一致。也就是在ADF的Commit操作原创 2011-09-27 15:10:52 · 1690 阅读 · 2 评论 -
ADF:给VO动态创建检索基准并获取程序需要的数据
在ADF中,可以在程序中动态创建Where语句来过滤数据,也可以使用ViewCriteria来过滤需要的数据。参考如下代码: public Long setHelpId(String usage){ ViewObjectImpl helpVO = this.getHelpTranslations(); //创建检索基准 ViewCr原创 2011-09-25 20:38:45 · 1016 阅读 · 4 评论 -
ADF:getRowCount 和 getEstimatedRowCount 结果相同效率不同
getRowCount和getEstimatedRowCount是ViewObjectImpl中的两个取得RowSet中记录数的方法,虽然两个方法返回的结果相同,但是两个方法的操作不同,效率不同。getRowCount一条一条地查询RowSet中的记录;getEstimatedRowCount执行一个SELECT COUNT (*) FROMtable的操作。两个方法的API:getR原创 2011-09-16 15:57:59 · 1402 阅读 · 0 评论 -
如何创建ADF Application Module 使用的JNDI数据源
ADF应用通常部署在Weblogic中,本文介绍如何在Weblogic中创建JDNI数据源,并将该数据源提供给ADF应用中的AM使用。 1, 在AM中,Connection Type选择JDBC DataSource,输入自定义的Datasource Name 2, 启动Weblogic服务器,在主页中选择JDBC -> 数据源 -> 新建数据源名称任意,JNDI名称需要原创 2011-09-13 14:39:56 · 1308 阅读 · 1 评论 -
在VO中引用Controller层中的Session State的两种方法
http://blogs.oracle.com/smuenchadf/resource/examples中的第154个Example,Steven介绍了两种将Controller层中的值绑定给View Object中的变量的方法,其中的Session State可以理解为对应的一个Session值。1,在adf.userSession.userData中保存Controller层传递过来的原创 2011-11-13 20:51:12 · 1208 阅读 · 0 评论 -
ADF: 区分VO定义和VO实例
在ADF BC中,可以Declarative的方式定义业务需要的VO,这时VO的定义就是一个XML文件。一个Java类可以有多个实例对象,VO也是,一个VO定义可以关联多个VO实例,并且每个VO实例在取数据的时候是不相关的。当然,也可以使用Java代码动态创建VO(VO定义,VO实例)。VO定义例子:<ViewObject xmlns="http://xmlns.oracle.原创 2011-09-08 14:51:49 · 1603 阅读 · 0 评论 -
ADF中给VO动态添加where子句,过滤数据(二)
关键字:ADF,VO,where,过滤数据1,首先获得VO对象实例,然后使用以下子句动态创建查询条件。vo.setWhereClause("person_type_code = :ThePersonType");vo.defineNamedWhereClauseParam("ThePersonType", null, null);vo.setNamedWhereClause原创 2011-07-26 20:51:16 · 1656 阅读 · 0 评论 -
不使用AM Pool对ADF应用进行测试
推荐Timo Hahn的文章:JDev: Always Test Your App with ApplicationModule Pooling turned off其中也讲到了在测试ADF应用时,不使用AM Pool,这在Fusion Developer Guide for ADF中也有强调。AM Poo是被默认使用的,开发人员在开发的时候,会被误导代码运行正确,而在应用程序发布到Produ原创 2011-11-10 23:25:35 · 744 阅读 · 0 评论 -
ADF中的 'pessimistic 锁' 和 'optimistic 锁'
在ADF中提供两种类型的锁:pessimistic, optimistic。在11gR1版本的JDeveloper中,默认使用的是pessimistic锁,在11gR2的JDeveloper中使用的是optimistic锁。可以在bc4j.xcfg中修改锁类型(jbo.locking.mode):原创 2011-09-19 11:05:17 · 980 阅读 · 0 评论 -
给ADF BC EO Row或Attribute添加Custom异常
Andrejus的文章Custom Exception Registration for ADF BC EO Attribute告诉我们,可以使用registerAttributeException(...)来给Attribute定义校验后的异常;同样可以使用registerRowException(JboException)来定义Row级别的异常信息,可以参考这篇文章:Adding busi原创 2011-11-23 17:33:53 · 631 阅读 · 0 评论 -
ADF : Application Module 可以定义的两种接口,你知道么?
在ADF中,ADF Model层的逻辑功能是能过Application Module展现给调用者的。最基本的,每个Application Module都要对应一个数据库链接,它负责管理数据库事务等;也做为ADF BC中将Model层逻辑expose给UI层的中间管理者。那么,Ap原创 2011-09-09 17:56:08 · 1107 阅读 · 0 评论 -
What you may need to know about DBTransaction::postChanges()
原文:What you may need to know about DBTransaction::postChanges()In some specific use case scenarios both entity objects and stored procedures may need to co exist in your business logic implement转载 2011-11-01 10:25:38 · 959 阅读 · 2 评论 -
ADF ViewObject中Binding Style的含义
在ADF BC中,View Objec的定义中包含三种类型的Binding Style:JDBC Positional、Oracle Positional、Oracle Named,其中默认的为Oracle Named。该参数针对ViewObject的绑定变量,使用不同的参数定义方法。JDBC Positional:ViewObject中的SQL中的参数是’?‘样式Oracle Posit原创 2011-12-14 00:04:16 · 1254 阅读 · 0 评论 -
打印VO的SQL语句和绑定参数的代码片断
为了跟踪VO的查询结果,可以使用下面的Java代码来查看查询DB的SQL,也可以将getParametersValues方法做为框架的扩充方法。 private void getParametersValues(Object[] params) { if (getBindingStyle() == SQLBuilder.BINDING_STYLE_ORACLE原创 2011-12-26 22:50:44 · 1203 阅读 · 0 评论 -
ADF tree调优
ADF树组件af:tree在每次展开节点的时候,都要进行DB的数据查询,可以在对应的View Object中设置"Retain View Link Accessor Rowset"来避免该问题,参考文章:Unnecessary SQL Statements Issued When Changing Row Selection of a TreeAndrejus的Sample:Tuning原创 2011-12-12 23:19:31 · 1644 阅读 · 1 评论 -
clearCache: Entity based View Object and transient View Object Scenario
clearCache: Entity based View Object and transient View Object Scenario原文:http://blogs.oracle.com/vijaymohan/entry/clearcache_entity_based_view_object_and_transient_view_object_scenario#Mo转载 2011-12-31 21:10:20 · 825 阅读 · 0 评论 -
ADF中解决sequence断号问题
定义Sequence时,如果使用缓存,在数据库关闭或者宕掉时,将出现Sequence跳号。要解决ADF程序中的sequence断号,首先要确保Oracle数据库中不产生断号。1,对于非频繁使用的Sequence,可以在定义中加NOCACHE,即不缓存。这样数据库中不会出现断号了。2,对于频繁使用的Sequence,定义的时候又使用了CACHE。可以使用DBMS_SHARED_POO原创 2011-11-07 22:54:51 · 837 阅读 · 0 评论 -
ADF: The best way to indicate for records in a table the existence of details
An interesting discussion arose in one of the projects I am involved in. The functional requirement at stake: show records in a table. In one of the columns, show an indicator (checkbox for example) t转载 2011-10-31 09:22:44 · 1151 阅读 · 0 评论 -
To call a VO from another VO or from AM method
Scenario:How to set an Attribute value from one VO into another VO?Solution: //in you Application module Impl file have the follwing code written inside the method which will set the value f转载 2012-10-16 15:09:12 · 599 阅读 · 0 评论