public ForeignKey getJoin(final FieldMapping field, Table table,
boolean adapt) {
List cols = getColumns();
if (cols.isEmpty())
cols = field.getDefiningMapping().getMappingInfo().
getSecondaryTableJoinColumns(_tableName);
ForeignKeyDefaults def = new ForeignKeyDefaults() {
public ForeignKey get(Table local, Table foreign, boolean inverse) {
return field.getMappingRepository().getMappingDefaults().
getJoinForeignKey(field, local, foreign);
}
public void populate(Table local, Table foreign, Column col,
Object target, boolean inverse, int pos, int cols) {
field.getMappingRepository().getMappingDefaults().
populateJoinColumn(field, local, foreign, col, target,
pos, cols);
}
};
ClassMapping cls = field.getDefiningMapping();
return createForeignKey(field, "join", cols, def, table, cls, cls,
false, adapt);
}