Linkable does not support defining an alternative join not using the primary key. Linkable should allow setting foreign key to false to alternatively define the relationship, see below:
(http://stackoverflow.com/questions/3814862/cakephp-model-relation)
public $hasOne = array(
'RelatedModel' => array(
'className' => 'RelatedModel',
'foreignKey' => false,
'conditions' => array(
'MainModel.random_field = RelatedModel.some_field'
)
)
}