protected boolean shouldBuildDeleteStatementForMapping(ForeignReferenceMapping frMapping, boolean dontCheckDescriptor, ClassDescriptor descriptor) { return (dontCheckDescriptor || frMapping.getDescriptor().equals(descriptor)) && !(frMapping.isCascadeOnDeleteSetOnDatabase()); }
protected boolean shouldBuildDeleteStatementForMapping(ForeignReferenceMapping frMapping, boolean dontCheckDescriptor, ClassDescriptor descriptor) { return (dontCheckDescriptor || frMapping.getDescriptor().equals(descriptor)) && !(frMapping.isCascadeOnDeleteSetOnDatabase()); }
return; addForeignKeyConstraint(table, targetTblDef, fkFieldNames, targetFieldNames, mapping.isCascadeOnDeleteSetOnDatabase());
/** * Build field definitions and foreign key constraints for all many-to-many relation table. */ protected void buildRelationTableFields(ForeignReferenceMapping mapping, TableDefinition table, List<DatabaseField> fkFields, List<DatabaseField> targetFields) { assert fkFields.size() > 0 && fkFields.size() == targetFields.size(); DatabaseField fkField = null; DatabaseField targetField = null; List<String> fkFieldNames = new ArrayList(); List<String> targetFieldNames = new ArrayList(); for (int index = 0; index < fkFields.size(); index++) { fkField = fkFields.get(index); targetField = targetFields.get(index); fkFieldNames.add(fkField.getNameDelimited(databasePlatform)); targetFieldNames.add(targetField.getNameDelimited(databasePlatform)); fkField = resolveDatabaseField(fkField, targetField); setFieldToRelationTable(fkField, table); } // add a foreign key constraint from fk field to target field DatabaseTable targetTable = targetField.getTable(); TableDefinition targetTblDef = getTableDefFromDBTable(targetTable); if (mapping.getDescriptor().hasTablePerClassPolicy()) { return; } if (mapping.getReferenceDescriptor().hasTablePerClassPolicy() && mapping.getReferenceDescriptor().getTablePerClassPolicy().hasChild()) { return; } addForeignKeyConstraint(table, targetTblDef, fkFieldNames, targetFieldNames, mapping.isCascadeOnDeleteSetOnDatabase()); }