return;
// while I'd like to do auto detection based on join directions, etc.
// the distinguished column / table / etc names forces our hand
// esp for OpenJPA custom mappings.
FieldMapping field = (FieldMapping) fmd;
switch (strategy) {
case ONE_ONE:
case MANY_ONE:
serializeColumns(field.getValueInfo(), ColType.JOIN,
field.getMappingInfo().getTableName(), null, fmd);
return;
case ONE_MANY:
if (field.getMappingInfo().getJoinDirection() ==
MappingInfo.JOIN_NONE) {
serializeColumns(field.getElementMapping().getValueInfo(),
ColType.JOIN, null, null, fmd);
return;
}
// else no break
case MANY_MANY:
if (field.getMappingInfo().hasSchemaComponents()
|| field.getElementMapping().getValueInfo()
.hasSchemaComponents()) {
AnnotationBuilder abJoinTbl =
addAnnotation(JoinTable.class, fmd);
String table = field.getMappingInfo().getTableName();
if (table != null) {
int index = table.indexOf('.');
if (index < 0)
abJoinTbl.add("name", table);
else {
abJoinTbl.add("schema", table.substring(0, index));
abJoinTbl.add("name", table.substring(index + 1));
}
}
serializeColumns(field.getMappingInfo(),
ColType.JOIN, null, abJoinTbl, null);
serializeColumns(field.getElementMapping().getValueInfo(),
ColType.INVERSE, null, abJoinTbl, null);
}
return;
}
serializeColumns(field.getValueInfo(), ColType.COL,
field.getMappingInfo().getTableName(), null, fmd);
if (strategy == PersistenceStrategy.BASIC && isLob(field)) {
addAnnotation(Lob.class, fmd);
}
TemporalType temporal = getTemporal(field);
if (temporal != null) {