- Oracle JDeveloper 11gR2 Cookbook
- Nick Haralabidis
- 392字
- 2021-08-20 15:53:05
Using doDML() to enforce a detail record for a new master record
In this recipe, we will consider a simple technique that we can use to enforce having detailed records when inserting a new master record in an entity association relationship. The use case demonstrates how to enforce creating at least one employee at the time when a new department is created.
Getting ready
We will use the HR
database schema and the HRComponents
workspace that we have created in previous recipes in this chapter.
How to do it...
- Open the
DepartmentImpl
custom entity implementation class and override thedoDML()
method using the Override Methods dialog. - Add the following code to the
doDML()
method before the call tosuper.doDML()
:// check for insert if (DML_INSERT == operation) { // get the department employees accessor RowIterator departmentEmployees = this.getDepartmentEmployees(); // check for any employees if (!departmentEmployees.hasNext()) { // avoid inserting the department if there are no employees for it throw new ExtJboException("00006"); } }
How it works...
In the overridden doDML()
, we only check for insert operations. This is indicated by comparing the DML operation
flag which is passed as a parameter to doDML()
to the DML_INSERT
flag. Then we get the department employees from the DepartmentEmployees
accessor by calling getDepartmentEmployees()
. The DepartmentEmployees
accessor was set up during the creation of the HRComponents
workspace earlier in this chapter. We check whether the RowIterator
returned has any rows by calling hasNext()
on it. If this is not the case, that is, there are no employees associated with the specific department that we are about to insert, we alert the user by throwing an ExtJboException
exception. The ExtJboException
exception is part of the SharedComponets
workspace and it was developed in the Using a custom exception class recipe back in Chapter 1, Pre-requisites to Success: ADF Project Setup and Foundations.
When testing the application module with the ADF Model Tester, we get the following error message when we try to insert a new department without any associated employees:

- 數據科學實戰手冊(R+Python)
- Progressive Web Apps with React
- The Android Game Developer's Handbook
- JavaScript 從入門到項目實踐(超值版)
- Angular UI Development with PrimeNG
- Java面向對象軟件開發
- C#編程入門指南(上下冊)
- Programming ArcGIS 10.1 with Python Cookbook
- Hands-On JavaScript High Performance
- C語言從入門到精通(第4版)
- Kotlin Standard Library Cookbook
- C#程序設計
- C#應用程序設計教程
- Unity UI Cookbook
- JBoss:Developer's Guide