in grails-datastore-gorm-hibernate/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java [3147:3181]
protected String getDefaultColumnName(PersistentProperty property, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
String columnName = namingStrategy.propertyToColumnName(property.getName());
if (property instanceof Association) {
Association association = (Association) property;
boolean isBasic = property instanceof Basic;
if(isBasic && ((PropertyConfig)property.getMapping().getMappedForm()).getType() != null ) {
return columnName;
}
if (isBasic) {
return getForeignKeyForPropertyDomainClass(property, sessionFactoryBeanName);
}
if (property instanceof ManyToMany) {
return getForeignKeyForPropertyDomainClass(property, sessionFactoryBeanName);
}
if (!association.isBidirectional() && association instanceof org.grails.datastore.mapping.model.types.OneToMany) {
String prefix = namingStrategy.classToTableName(property.getOwner().getName());
return addUnderscore(prefix, columnName) + FOREIGN_KEY_SUFFIX;
}
if (property.isInherited() && isBidirectionalManyToOne(property)) {
return namingStrategy.propertyToColumnName(property.getOwner().getName()) + '_'+ columnName + FOREIGN_KEY_SUFFIX;
}
return columnName + FOREIGN_KEY_SUFFIX;
}
return columnName;
}