The current implementation of one to one bidirectional requires that the table with the FK in it be the parent. Perhaps this can be improved so that we can not have this requirement. A possible way to do this would be to have a keyword hasOne similar to hasMany so that one to one can work just like one To Many (since this works perfectly in the hasMany relationship).
This can now be mapped with the below.
class Face { String name static hasOne = [nose:Nose] } class Nose { String shape Face face }In this case the foreign key will be stored in the "nose" table not the "face" table as before