private void delete(Event event) throws SQLException { List<Object> newRow = event.getNewRow(); boolean isPossibleDuplicate = event.isPossibleDuplicate(); int count = 0; if (newRow != null) throw new TestException("BEFORE_DELETE is invoked, but " + "newRow is not null: " + newRow); deleteStmt.get().setInt(1, (Integer) event.getPrimaryKey()[0]); // through primary key Log.getLogWriter() .info("deleting from buyorders in derby where oid =" + (Integer) event.getPrimaryKey()[0]); count = deleteStmt.get().executeUpdate(); Log.getLogWriter().info("deleted " + count + " row"); if (count != 1 && !isPossibleDuplicate && !SQLTest.setTx) throw new TestException( "delete from writer does not " + "delete the corresponding row in back_end, deleted row is " + count); }
private void insert(Event event) throws SQLException { List<Object> oldRow = event.getOldRow(); List<Object> newRow = event.getNewRow(); boolean isPossibleDuplicate = event.isPossibleDuplicate(); // for HA case, before insert check if record has been inserted already to avoid duplicate if (isPossibleDuplicate) { ResultSet rs = stmt.get() .executeQuery( "select * from trade.buyorders where oid = " + (Integer) event.getPrimaryKey()[0]); if (rs.next()) { Log.getLogWriter().info("this row has been inserted already " + newRow); // if it is there, do not insert again } else { doInsert(oldRow, newRow, isPossibleDuplicate); } } else doInsert(oldRow, newRow, isPossibleDuplicate); }