With two clicks, she used to alter the table definition in the project—no need to manually write ALTER scripts yet.
With 12 hours left, she realized the old code used raw JDBC for override history but JPA for truck data. JDeveloper’s Refactoring engine (Ctrl+Shift+R) let her convert the JDBC block to a JPA named query across 14 files—automatically updating imports, persistence.xml, and session beans. No broken references.
The issue was a missing column in the ROUTE_OVERRIDE table. Maya opened the Database Navigator (View → Database → Database Navigator). She connected to the new 23c database, compared the old schema (from a backup dump) with the new one, and found the problem: TIMESTAMP type mismatch.
At 9 AM demo day, the dispatcher tool loaded in 2 seconds (down from 15). The new timestamp column showed accurate route changes. The client signed the contract.
She ran the app in integrated WebLogic Server (JDeveloper 14c bundles it). The breakpoint hit a NullPointerException inside a massive helper class. Instead of scrolling through code, she used the Data Control Palette to visually drag-and-drop the new database column onto the existing UI binding. JDeveloper auto-generated the missing getters and setters.
She clicked File → New → Application from Existing Source . JDeveloper scanned the broken project, detected EJB 3.x session beans mixed with random JDBC calls, and built a logical project structure in seconds. The Application Navigator color-coded the mess: red for broken dependencies, green for what worked.