Если вы хотите использовать объединяющую таблицу, я полагаю, что вам придется использовать отношение hasAndBelongsToMany (HABTM), даже если у вас никогда не будет «много». Данные, очевидно, будут вести себя иначе, чем стандартные отношения hasOne, но, по крайней мере, отношения будут существовать.
Возможно, есть способ обойти это, используя поле 'condition' отношения hasOne, но я подозреваю, что вам все равно придется указать внешний ключ (или он все равно будет по умолчанию 'object2_id'), и он, вероятно, все еще попытается сделать соединение на основе этого внешнего ключа.