Validate.notNull(javaTypeDetails,
"The type specified, '%s', doesn't exist", typeName);
final String physicalTypeIdentifier = javaTypeDetails
.getDeclaredByMetadataId();
final ReferenceField fieldDetails = new ReferenceField(
physicalTypeIdentifier, fieldType, fieldName, cardinality);
fieldDetails.setNotNull(notNull);
fieldDetails.setNullRequired(nullRequired);
if (joinColumnName != null) {
fieldDetails.setJoinColumnName(joinColumnName);
}
if (referencedColumnName != null) {
Validate.notNull(joinColumnName,
"@JoinColumn name is required if specifying a referencedColumnName");
fieldDetails.setReferencedColumnName(referencedColumnName);
}
if (fetch != null) {
fieldDetails.setFetch(fetch);
}
if (comment != null) {
fieldDetails.setComment(comment);
}
insertField(fieldDetails, permitReservedWords, transientModifier);
}