field.getKeyMapping().getValueInfo().assertNoSchemaComponents
(field.getKey(), !adapt);
field.getElementMapping().getValueInfo().assertNoSchemaComponents
(field.getElement(), !adapt);
ValueMappingInfo vinfo = field.getValueInfo();
vinfo.assertNoJoin(field, true);
vinfo.assertNoForeignKey(field, !adapt);
// Determine whether to delimit the base field name
DBDictionary dict = field.getMappingRepository().getDBDictionary();
DBIdentifier fieldName = DBIdentifier.newColumn(field.getName(), dict != null ? dict.delimitAll() : false);
// get value columns
Column tmpCol = new Column();
tmpCol.setIdentifier(fieldName);
tmpCol.setJavaType(field.getTypeCode());
Column[] cols = vinfo.getColumns(field, fieldName,
new Column[]{ tmpCol }, field.getTable(), adapt);
if (field.getValueStrategy() == ValueStrategies.AUTOASSIGN)
cols[0].setAutoAssigned(true);
if (vinfo.isImplicitRelation())
for (int i = 0; i < cols.length; i++)
cols[i].setImplicitRelation(true);
field.setColumns(cols);
field.setColumnIO(vinfo.getColumnIO());
field.mapConstraints(fieldName, adapt);
// add primary key columns to table pk if logical
field.mapPrimaryKey(adapt);
PrimaryKey pk = field.getTable().getPrimaryKey();