public void fromDTO(StateChange stateChange) { super.fromDTO(stateChange); List<Object> orphansToDelete = new ArrayList<Object>(); setEffectiveDate(stateChange.getEffectiveDate()); setExpirationDate(stateChange.getExpirationDate()); setFromStateKey(stateChange.getFromStateKey()); setToStateKey(stateChange.getToStateKey()); if (stateChange.getStateConstraintIds() != null) { stateConstraintIds = new ArrayList<String>(stateChange.getStateConstraintIds()); } else { stateConstraintIds = null; } if (stateChange.getStatePropagationIds() != null) { statePropagationIds = new ArrayList<String>(stateChange.getStatePropagationIds()); } else { statePropagationIds = null; } // Merge attributes into entity and add leftovers to be deleted orphansToDelete.addAll( TransformUtility.mergeToEntityAttributes( StateChangeAttributeEntity.class, stateChange, this)); }