First, look at Determining the Fast Refresh Capabilities of a Materialized View. That indicates what types of fast refresh are available.
Then find the exact SQL statements used by both contexts, compare them and see if their difference are related to any of the POSSIBLE = 'N' rows in MV_CAPABILITIES_TABLE.
Here's a wild guess: in SQL Developer you're using a single INSERT
statement, but iBatis is using a combination of INSERT
and UPDATE
. REFRESH_FAST_AFTER_INSERT = Y, but REFRESH_FAST_AFTER_ANY_DML = N.