protected void bindOneToOne(final org.grails.datastore.mapping.model.types.OneToOne property, OneToOne oneToOne,
String path, String sessionFactoryBeanName) {
PropertyConfig config = getPropertyConfig(property);
final Association otherSide = property.getInverseSide();
final boolean hasOne = isHasOne(otherSide);
oneToOne.setConstrained(hasOne);
oneToOne.setForeignKeyType(oneToOne.isConstrained() ?
ForeignKeyDirection.FOREIGN_KEY_FROM_PARENT :
ForeignKeyDirection.FOREIGN_KEY_TO_PARENT);
oneToOne.setAlternateUniqueKey(true);
if (config != null && config.getFetchMode() != null) {
oneToOne.setFetchMode(config.getFetchMode());
}
else {
oneToOne.setFetchMode(FetchMode.DEFAULT);
}
oneToOne.setReferencedEntityName(otherSide.getOwner().getName());
oneToOne.setPropertyName(property.getName());
bindOneToOneInternal(property, oneToOne, path);
if (hasOne) {
PropertyConfig pc = getPropertyConfig(property);
bindSimpleValue(property, oneToOne, path, pc, sessionFactoryBeanName);
}
else {
oneToOne.setReferencedPropertyName(otherSide.getName());
}
}