public void update(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException { if (field.getMappedBy() != null) return; OpenJPAStateManager rel = RelationStrategies.getStateManager (sm.fetchObjectField(field.getIndex()), store.getContext()); if (field.getJoinDirection() == field.JOIN_INVERSE) { nullInverse(sm, rm); updateInverse(sm, rel, store, rm); } else { Row row = field.getRow(sm, store, rm, Row.ACTION_UPDATE); if (row != null) field.setForeignKey(row, rel); } }
public void delete(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException { if (field.getMappedBy() != null) return; if (field.getJoinDirection() == field.JOIN_INVERSE) { if (sm.getLoaded().get(field.getIndex())) { OpenJPAStateManager rel = RelationStrategies.getStateManager(sm. fetchObjectField(field.getIndex()), store.getContext()); updateInverse(sm, rel, store, rm); } else nullInverse(sm, rm); } else { field.deleteRow(sm, store, rm); // if our foreign key has a delete action, we need to set the // related object so constraints can be evaluated OpenJPAStateManager rel = RelationStrategies.getStateManager (sm.fetchObjectField(field.getIndex()), store.getContext()); if (rel != null) { ForeignKey fk = field.getForeignKey((ClassMapping) rel.getMetaData()); if (fk.getDeleteAction() == ForeignKey.ACTION_RESTRICT) { Row row = field.getRow(sm, store, rm, Row.ACTION_DELETE); row.setForeignKey(fk, null, rel); } } } }
updateInverse(sm, rel, store, rm); } else nullInverse(sm, rm); } else { field.deleteRow(sm, store, rm);
updateInverse(sm, rel, store, rm); } else nullInverse(sm, rm); } else { field.deleteRow(sm, store, rm);
updateInverse(sm, rel, store, rm); } else nullInverse(sm, rm); } else { field.deleteRow(sm, store, rm);
updateInverse(sm, rel, store, rm); } else nullInverse(sm, rm); } else { field.deleteRow(sm, store, rm);
nullInverse(sm, rm); updateInverse(sm, rel, store, rm); } else {
nullInverse(sm, rm); updateInverse(sm, rel, store, rm); } else {
nullInverse(sm, rm); updateInverse(sm, rel, store, rm); } else {
nullInverse(sm, rm); updateInverse(sm, rel, store, rm); } else {