Oracle ADF Interview Questions and Answers

Oracle ADF Interview Questions and Answers

Last updated on 05th Oct 2020, Blog, Interview Question

About author

Mohan (Lead Data Engineer - Director Level )

He is Highly Experienced in Respective Technical Domain with 6+ Years, Also He is a Respective Technical Trainer for Past 5 Years & Share's This Important Articles For us.

(5.0) | 16617 Ratings 1709

If you’re looking for Oracle ADF Interview Questions for Experienced or Freshers, you are at right place. There are lot of opportunities from many reputed companies in the world. According to research Oracle ADF has a market share of about 1.0%. So, You still have the opportunity to move ahead in your career in Oracle ADF Development. ACTE offers Advanced Oracle ADF Interview Questions 2021 that helps you in cracking your interview & acquire dream career as Oracle ADF Developer.

1. What is Oracle ADF?


The Oracle Application Development Framework Oracle ADF. is an end-to-end application framework that builds on J2EE standards and open-source technologies to simplify and accelerate implementing service-oriented applications. If you develop enterprise solutions that search, display, create, modify, and validate data using web, wireless, desktop, or web services interfaces, Oracle ADF can simplify your job. Used in tandem, Oracle JDeveloper 10g, and Oracle ADF give you an environment that covers the full development lifecycle from design to deployment, with drag-and-drop data binding, visual UI design, and team development features built-in.

2. What is an active listener?


An action listener is a class that wants to be notified when a command component fires an action event. An action listener contains an action listener method that processes the action event object passed to it by the command component.

3. What is Top Link?


  • Top Link is an Object-Relational Mapping layer that provides a map between the Java objects that the model uses and the database that is the source of their data.
  • By default, a session is created named default. In the following steps, you create a new session.

4. What is Managed Bean?


JavaBean objects managed by a JSF implementation are called managed beans. A managed bean describes how a bean is created and managed. It has nothing to do with the bean’s functionality.

A managed bean is about how the bean is created and initialized. As you know, jsf uses the lazy initialization model. It means that the bean in the particular scope is created and initialized not at the moment when the scope is started, but on-demand, i.e. when the bean is the first required.

5. Differences between King Beans and Managed Beans?


King BeansManaged Beans
A backing bean is any bean that is referenced by a form.A managed bean is a backing bean that has been registered with JSF (in faces-config.xml. and it automatically created (and optionally initialized. by JSF when it is needed).
Backing Beans should be defined only in the request scopeThe managed beans that are created by JSF can be stored within the request, session, or application scopes

6. What are the different kinds of Bean Scopes in JSF?


JSF supports three Bean Scopes.

  • Request Scope: The request scope is short-lived. It starts when an HTTP request is submitted and ends when the response is sent back to the client.
  • Session Scope: The session scope persists from the time that a session is established until session termination.
  • Application Scope: The application scope persists for the entire duration of the web application. This scope is shared among all the requests and sessions.

7. How to declare the page navigation in faces-config.XML file in10G?


Navigation rules tell JSF implementation which page to send back to the browser after a form has been submitted. We can declare the page navigation as follows:

This declaration states that the login action navigates to /welcome.jsp, if it occurred inside /index.jsp.

8. Which component in ADF BC Manages transaction?


Application Module, manages transactions.

9. Where is that we write business rules/validations in ADF and why?


We should ideally be writing validations at an Entity Object level, because they provide the highest degree of reuse.

10. What are the JSF lifecycle phases?


The six phases of the JSF application lifecycle are as follows (note the event processing at each phase).:

Restore view

  • Apply request values; process events
  • Process validations; process events
  • Update model values; process events
  • Invoke application; process events
  • Render response

11. What are Association and View links?


  • They define the join or the link among EO’s and VO’s. The association defines the link between EO’s. They can be considered as PrimaryKey/ForeignKey relationships between tables.
  • The Viewlink is for a VO. It defines the Join conditions. A viewlink can be based on an association or based on attributes, Basing view links on associations have the same advantage of entity cache and a few more which are unveiled later.

ADF Business Components

12. What is the Business Component Tester?


The most used component of the model layer is the tester, which is used to run and check the data model that is implemented. This serves as the first line of defense to see if data is exposed as we need it and to test the data model without a need to create a UI.

13.What is task flow?


ADF task flows provide a modular approach for defining control flow in an application. Instead of representing an application as a single large JSF page flow, you can break it up into a collection of reusable task flows. Each task flow contains a portion of the application’s navigational graph. The nodes in the task flows are activities. An activity node represents a simple logical operation such as displaying a page, executing application logic, or calling another task flow. The transactions between the activities are called control flow cases.

14. Advantage of Task Flow Over JSF flow?


ADF task flows offer significant advantages over standard JSF page flows

  • The application can be broken up into a series of modular flows that call one another.
  • You can add to the task flow diagram nodes such as views, method calls, and calls to other task flows.
  • Navigation is between pages as well as other activities, including routers.
  • ADF task flows are reusable within the same or an entirely different application. After you break up your application into task flows, you may decide to reuse task
  • Shared memory scope (for example, page flow scope. enables data to be passed between activities within the task flow. Page flow scope defines a unique storage area for each instance of an ADF bounded task flow).

15. What is the region in Task Flow?


You can render a bounded task flow in a JSF page or page fragment. by using an ADF region. An ADF region comprises the following. You create an ADF region by dragging and dropping a bounded task flow that contains at least one view activity or one task flow call activity to the page where you want to render the ADF region. This makes sure that the ADF region you create has content to display at runtime.

Subscribe For Free Demo

Error: Contact form not found.

16. What is an Association Accessor?


  • It’s an operation by which an entity instance at one end of an association can access the related entity object instance at the other end of the association. An Accessor that travels from destination to source is called a source assessor and an accessor that travels from source to destination is called a destination accessor.
  • It is described in the entity object definition xml files which can be used by view object and view link definition to specify cross entity relationship. Its return type will be the entity object class of associated entity object definition or ‘EntityImpl’ if the associated entity object definition has no entity object class.

17. What are different data control scope?


  • Isolated
  • Shared(Default.-Data is shared with the parent flow

18. What is application module pooling and how we can handle it?


Still trying to find more info on this.

But as of now, you can go

19. What do you mean by Bean Scope?


Bean Scope typically holds beans and other objects that need to be available in the different components of a web application.

20. What are various components in ADF?


Oracle ADF has the following components

  • ADF +business (components Model).
  • ADF Faces (view).
  • ADF Task flows(controller).

21. Describe Entity Object


 An entity object represents a row in a database table and simplifies modifying its data by handling all DML operations for you. It can encapsulate business logic for the row to ensure your business rules are consistently enforced. You associate an entity object with others to reflect relationships in the underlying database schema to create a layer of business domain objects to reuse in multiple applications.

22. Describe Application Module


An application module is the transactional component that UI clients use to work with application data. It defines an up-datable data model and top-level Procedures and functions (called service methods) related to a logical unit of work Related to an end-user task.

23. Describe View Object


A view object represents a SQL query and simplifies working with its results. You use the full power of the familiar SQL language to join, project, filter, sort, and Aggregate data into exactly the “shape” required by the end-user task at hand. This Includes the ability to link a view object with others to create master/detail Hierarchies of any complexity. When end users modify data in the user interface, Your view objects collaborate with entity objects to consistently validate and save the changes.

24.Explain the two types of cursors ?


  • Implicit cursors
  • Explicit cursors.
  • For loop cursors.
  • PL/SQL uses Implicit cursors for queries.
  • User defined cursors are called explicit cursors.
  • User using Cursors in for loop the Cursor called for loop Cursor.

25.What is Raise_application_error ?


Raise_application_error is a procedure of package DBMS_STANDARD. that allows user_defined error or error code and error messages from stored subprogram or database triggers.

Course Curriculum

Get Oracle ADF Training from TOP-Rated Instructors

  • Instructor-led Sessions
  • Real-life Case Studies
  • Assignments
Explore Curriculum

26.What is Overloading of procedures ?


The same procedure name is repeated with parameters of different data types and parameters in different positions, varying the number of parameters is called overloading of procedures.

27. Difference between Backing Bean and Managed Bean?


Backing BeansManaged Beans
A backing bean is any bean that is referenced by a form.A managed bean is a backing bean that has been registered with JSF (in faces-config.xml) and it automatically created (and optionally initialized) by JSF when it is needed.
The advantage of managed beans is that the JSF framework will automatically create these beans, optionally initialize them with parameters you specify in faces-config.xml,
Backing Beans should be definedThe managed beans that are created by JSF can be stored within the request, session, or application scopes

28. Define Request Scope.


The request scope is short-lived. It starts when an HTTP request is submitted and ends when the response is sent back to the client.

29. Define Session Scope.


The session scope persists from the time that a session is established until session termination.

30. Define Application Scope.


The application scope persists for the entire duration of the web application. This scope is shared among all the requests and sessions.

31. What is the difference between JSP-EL and JSF-EL?


In JSP-EL the value expressions are delimited by ${…}.In JSf-EL the value expressions are delimited by #{…}.
The ${…} delimiter denotes the immediate evaluation of the expressions, at the time that the application server processes the page.The #{…} delimiter denotes deferred evaluation. With deferred evaluation, the application server retains the expression and evaluates it whenever a value is needed.

32. How to declare the page navigation (navigation rules) in faces-config.xml file in ADF 10g?


Navigation rules tell the JSF implementation which page to send back to the browser after a form has been submitted. We can declare the page navigation as follows:

This declaration states that the login action navigates to /welcome.jsp, if it occurred inside /index.jsp.

33. What are the JSF life-cycle phases?


The six phases of the JSF application lifecycle are as follows (note the event processing at each phase):

  • Restore view
  • Apply request values; process events
  • Process validations; process events
  • Update model values; process events
  • Invoke application; process events
  • Render response

34. Explain the Restore View in the life-cycle phase of JSF.


A request comes through the FacesServlet controller. The controller examines the request and extracts the view ID, which is determined by the name of the JSP page.

Start creating direct paths to that data that you need.

35. Explain the Apply request values in the life-cycle phase of JSF.


The purpose of the apply request values phase is for each component to retrieve its current state. The components must first be retrieved or created from the FacesContext object, followed by their values.

36. Explain the Process validations in the life-cycle phase of JSF.


In this phase, each component will have its values validated against the application’s validation rules.

37. Explain the Update model values in the life-cycle phase of JSF.


In this phase JSF updates the actual values of the server-side model ,by updating the properties of your backing beans

38. Explain the Invoke application in the life-cycle phase of JSF.


In this phase the JSF controller invokes the application to handle Form submissions.

39. Explain the Render response in the life-cycle phase of JSF.


In this phase JSF displays the view with all of its components in their current state.

40. What is setActionListener?


SetActionListener – The setActionListener tag is a declarative way to allow an action source ( , , etc.) to set a value before navigation. It is perhaps most useful in conjunction with the “process Scope” EL scope provided by ADF Faces, as it makes it possible to pass details from one page to another without writing any Java code. This tag can be used both with ADF Faces commands and JSF standard tags.

Examples of this can be as follows. Suppose we have a table “employee”. We want to fetch the salary of an employee of some particular row and want to send this salary in Next page in the process scope or request scope etc.So using this we can do this.

It have two attributes:

  • From – the source of the value; can be an EL expression or a constant value
  • To – the target for the value; must be an EL expression
  • to=”#{processScope.salary1}”/>

This setActionListener will pick the value of salary of that row and store this value into salary1 variable.So anyone can use this salary As processScope. salary1 . It is very simple to use. And very useful.

Course Curriculum

Enroll in Oracle ADF Training Course Led By Industry Experts

Weekday / Weekend BatchesSee Batch Details

41. Can an entity object be based on two Database Objects(tables/views) or two Web Services?


No, Directly its not possible to create EO using multiple tables. Entity objects will always have one to one relationship with a database   object or web service.  But using views you can create Entity Objects on multiple tables.

42. What is Control Hints in Entity Object configuration?


Control hints are associated with the current view or entity attribute. All view objects inherit the hint values at run time. Control hints for data controls and bindings, including: Labels, Date & currency formatting.

43. View Link is an active link between view objects.You can create view links by providing the Source & destination VO attributes.


 Oracle ADF view links are business components that define a relationship between two Oracle ADF view object definitions (the “source” and “destination” view objects) based on sets of view attributes (the “source” and “destination” attributes) from each. These can range from simple one-to-many relationships to complex many-to-many relationships. This allows you to easily create master/detail relationships between data controls in the client. For example, creating a view link between view objects will allow you to create relationships between:

  • A dropdown list for selecting a customer and a table displaying that customer’s orders
  • The nodes in a tree control and their respective children
  • An HTML page containing two frames: one that allows the user to browse for items and the other that lists the warehouses in which the selected item is stored

View Links can be created using:

  • Two View objects
  •  Based on EO Association

View Links and Queries

A view link definition relates two view object definitions. In the vast majority of cases, the view object definitions will contain SQL queries that access a database, and the view link definition will relate those queries using a parameterized WHERE clause, which is appended to the destination view object’s query and resolved using the values of source attributes.

For example, suppose you had the following view object definitions:

  • CustomersView, containing the query:

OrdersView, containing the query:


You could create a view link, CustOrdLink, with

  • CustomersView’s CustomerId attribute as its source attribute
  • The parameterized WHERE clause

You could then use CustOrdLink conjunction with a row from CustomersView (for example, the row for Customer 101) and all of OrdersView to return the rows from the query


JDeveloper will create the parameterized query for you based on the attributes you select. If you do not change this query, you can make the view link bidirectional. This will switch the roles of the source and destination attributes. For example, if you make CustArd Link bidirectional, you can use it in conjunction with a row from OrdersView (for example, a row for an order placed by Customer 101) and all of CustomersView to return the rows from the query


44. Can you make View Link bidirectional?


Yes, you can make a view link bidirectional. It’s handled by view link query. View Links created on Association are also bidirectional.

45. How to create read only VO?


While creating View select below marked option A view is read-only if it does not have Primary Keys or if all its entity references are reference-only.


46. Is EO to EO association possible like VO? If yes how?


Direct EO-EO association is possible.In Jdeveloper select option ‘New Association’, Give name to association, select attributes in source & destination Eos.

  • One-to-many relationships based on foreign keys.
  • A single many-to-many association corresponds to two foreign key relationships
  • A one-to-many relationship between the source table and a third table, the intersection table
  • A one-to-many relationship between the destination table and the intersection table.

47. What is a policy store and identity store in OID?


Identity Store is used to store information about users and groups while the Policy Store is used to store information about security policies.

48. What is the difference between databindings.cpx and datacontrol.dcx?


The DataBindings.cpx file contains the Oracle ADF binding context for your entire application and provides the metadata from which the Oracle ADF binding objects are created at runtime.

 The DataControls.dcx file is created when you register data controls on the business services. This file is not generated for Oracle ADF Business Components. It identifies the Oracle ADF model layer data control classes(factory classes) that facilitate the interaction between the client and the available business service.

49.What is binding context?


Binding context is a runtime map between the data controls and page definition of pages in the application which is used to access the binding layer. It is accessible through the EL expression in your jsp pages.

50. What is a binding container?


Binding container is a request-scoped map that is used to instantiate the page bindings. This is accessible through the EL expressions. Also, since it is a request-scoped map, it is accessible during every page request.

Oracle-Adf Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

51. What are the different types of bindings in ADF?


  • Method Bindings
  • Attribute Bindings
  • Tree Bindings
  • Action Bindings
  • Iterator Bindings

52. Define Method Bindings.


This binding is used when you want to use custom methods to be executed.

53.Define Attribute Bindings.


This is the binding to retrieve the value of a single view attribute in the iterator binding’s current view row.

For eg:


54. Define Tree Bindings.


This is used for tables, tree-tables and trees. It is used to expose rows of a  table in the iterator binding current range.

Eg; All Customers-


55. Define Action Bindings.


This binding type is used when buttons or command links are dropped on the user interface and require an action to be performed on them. We can use data control operations on them, for eg, Create, Delete, First, Last, Commit, Rollback etc.

56. Define Iterator Binding.


This binding is created by the application to access the ADF binding context. It contains a reference to the page bound data collection, helps access it and iterates over its data objects.

57. What is the purpose of adfc-config.xml?


The adfc-config.xml file is the configuration file for an ADF unbounded task flow. This file contains metadata about the activities and control flows contained in the unbounded task flow.

58. What is the purpose of faces-config.xml?


Use the faces-config.xml file to register a Framework application’s resources, such as custom validators and managed beans, and to define all page-to-page navigation rules.

59. In which xml do you configure the skin for your framework application?



60. How do you decide whether the application should be deployed as an EAR or a WAR?


If the application contains run-time customizations using MDS, it must be bundled as an EAR. For simple webcenter portal applications with no such customizations, WAR can be created.

61. What is the purpose of jazn-data.xml?


This file is used for defining the permissions and privileges for various groups of users on various task flows created in the application.

62. When we drag drop VO from DataControl which binding occurs?


Value binding occurs.

63. Explain Data Control Palette hierarchy


Data Control Palette hierarchy:The Data Control Palette displays two types of actions:

  • Actions that typically operate on all data collections in the current web page’s binding context (such as Commit and Rollback) in the Operations folder at the root level of the hierarchy.
  • Operations on a specific data collection (for example, MyView1). Data collection-specific operations (such as Create and Delete) appear in the Operations folder as child nodes of the collection in the Data Control Palette.

64. Write  code to access the current row and or the view object inside your bean.


Code to access the current row and or the view object inside your bean:

  • BindingContainer bc = BindingContext.getCurrent().getCurrentBindingsEntry();
  • DCBindingContainer dcbc = (DCBindingContainer) bc;
  • DCIteratorBinding lBinding = dcbc.findIteratorBinding(“Employees View Iterator”);
  • EmployeesViewRow row = (EmployeesViewRow) lBinding.getCurrentRow();
  • EmployeesView view = (EmployeesView) lBinding.getViewObject();

You have to change the iterator name ‘EmployeesViewIterator’ to the name of your VO iterator (look it up in the page bindings) and the classes Employees.

65. How many types of VOs can we create in Oracle ADF?


There are four types of VOs we can create as shown in the below image, select radio button & create VO.

1. Updatable VO (Updatable access through entity objects) – Here EO needs to be created for  updatable VOs.

2. Read only VO (Read-only access through SQl query) – No need to create EO, VOs can be created using SQL queries, table, or views.

3. Rows populated programmatically, not based on query – This is also a read-only view. Here add one or more attributes to use in the program. In the Attribute Settings page, adjust any setting you may need to for the attributes you defined.

4. Static VO (Rows populated at design time- Static List): You use the Create View Object wizard to create static view objects. The wizard lets you define the desired attributes (columns) and enter as many rows of data as necessary. The wizard displays the static data table as you create it.

You can also use the Create View Object wizard to create the attributes based on data from a comma-separated value (CSV) file format like a spreadsheet file. The wizard will attempt to create the attributes that you define in the wizard with data from the first row of the flat file. 

Check below image- circled import option is to import comma separated .csv file or other file.

66. Can we change DB connection for any particular AM?


YES, follow steps to change DB connection:

  • Double click on AM.
  • GO to the configuration tab, click on configuration file bc4j.xml
  • Here we have an attribute JDBCName under element AppModuleConfig, changing the connection which is created for another DB.

67. What are view criteria, how can you change view criteria at runtime?


  • View Criteria: View criteria are structured criteria that you can use to create searches.
  • View criteria are collections of view criteria rows. A view criteria row specifies query-by-example requirements for one or more view object attributes. A view row matches if it meets all of the requirements.
  • When you apply view criteria to a view object instance, the query is restricted to return those view rows that match at least one of the view criteria rows. Effectively, therefore, view criteria assemble a WHERE clause in conjunctive normal form: the WHERE clause is a disjunction of conjunctions of query-by-example requirements.
  • View criteria are implemented by the class –  oracle.jbo.ViewCriteria; 
  • view criteria rows, by the classoracle.jbo.ViewCriteriaRow.
  • View criteria is like querying a SQL query.
  • Sometimes you need dynamic ViewCriteria that you can handle at runtime ,
  • here is the solution ,you can create and apply ViewCriteria Programmatically:

Sample UseCase-

  • Suppose you have Department VO
  • You want to filter this VO for DepartmentId 10
  • Do this using this code snippet

68. How can you manage transactions in ADF?


We can manage transactions using Application Module, different Application Modules, Bounded Task Flows & at ADF Data Control Level.

69. What is Bundled Exception Mode in ADF?


An application module provides a feature called bundled exception mode which allows web applications to easily present a maximal set of failed validation exceptions to the end user, instead of presenting only the first error that gets raised. By default, the ADF Business Components application module pool enables bundled exception mode for web applications.

You typically will not need to change this default setting. However it is important to understand that it is enabled by default since it affects how validation exceptions are thrown. Since the Java language and runtime only support throwing a single exception object, the way that bundled validation exceptions are implemented is by wrapping a set of exceptions as details of a new “parent” exception that contains them. For example, if multiple attributes in a single entity object fail attribute-level validation, then these multiple ValidationException objects will be wrapped in a RowValException. This wrapping exception contains the row key of the row that has failed validation. At transaction commit time, if multiple rows do not successfully pass the validation performed during commit, then all of the RowValException objects will get wrapped in an enclosing TxnVi Exception object.

When writing custom error processing code, you can use the getDetails() method of the JboException base exception class to recursively process the bundled exceptions contained inside it.

70. What is <f:facet> ?


This tag is used to add a facet to the component means this tag is used to add its child as a facet of the closest parent component.

With the help of this tag we can add header and footer facet to the container component like panelGroup.

71.What is the return type of Service Methods?


Service Methods can return Scalar or Primitive Data Types.

72.Can Service Methods return type Void?


Yes, Service Methods can Return type Void

73. Can Service Methods return Complex Data Types?


No, service methods can return only primitive/scalar data types.

74. Which component in ADF BC manages transactions?


Application Module manages the transaction.

75.What are the various access scopes supported by ADF?


ADF Faces supports the following scopes

  • Application Scope
  • Session Scope
  • PageFlow Scope
  • Request Scope
  • BackingBean Scope.

76.In which XML do you configure the skin for your framework application?



77.Explain Data binding & its types, sub-types?


Oracle Application Development Framework (Oracle ADF) provides several types of binding objects to support the attributes and operations exposed by the Oracle ADF data controls for a particular business object:

ITERATOR BINDING, one per accessor attribute that your page or panel displays. Iterates over the business objects of the data collection and maintain the row currency and state.

VALUE BINDINGS, one for each data-bound UI component. Provides access to data.

ACTION BINDING, specifically defined for a button component. Provides access to operations defined by the business object.

Value Binding Types:

  • Attribute Value Binding
  • Boolean Value Binding
  • List Value Binding
  • Range Value Binding
  • Scroll Value Binding

78.How can you manage the transaction in ADF?


We can manage transactions using Application Module, different Application Modules, Bounded Task Flows & at ADF Data Control Level.

79.Describe Oracle ADF Architecture?


In line with community best practices, applications you build using the Fusion web technology stack achieve a clean separation of business logic, page navigation, and user interface by adhering to a model-view-controller architecture. As shown in an MVC architecture:

The model layer represents the data values related to the current page The view layer contains the UI pages used to view or modify that data The controller layer processes user input and determines page navigation.The business service layer handles data access and encapsulates business logic


Oracle ADF Business Components, which simplifies building business services.

Oracle ADF Faces rich client, which offers a rich library of AJAX-enabled UI components for web applications built with JavaServer Faces (JSF).

Oracle ADF Controller, which integrates JSF with Oracle ADF Model. The ADF Controller extends the standard JSF controller by providing additional functionality, such as reusable task flows that pass control not only between JSF pages but also between other activities, for instance, method calls or other task flows.

80.What are Schema Objects?


Schema objects are tables, views, sequences, synonyms, indexes,databases triggers, procedures, functions, packages.

81.What is a Table?


The table is collection information.A table is the basic of rows and are stored rows and columns.

82.What is an Index?


An index is used to perform tuning in queries. which can be created to increase the performance of data retrieval. Index can be created on one or more columns of a table.

83.What is a Data file?


A database’s data files contain all the database data. The data of logical database structures is tables and indexes is physically stored in the data files allocated for a database.

84. What is the basic structure of PL/SQL ?


PL/SQL uses block structure as its basic two structures. Anonymous blocks or nested blocks can be used in PL/SQL.

Are you looking training with Right Jobs?

Contact Us

Popular Courses