Self-referencing with join tables is done as follows:

<code type="php">
class User extends Doctrine_Record {
    public function setUp() {
        $this->hasMany('User as Friend','UserReference.user_id-user_id2');
    }
    public function setTableDefinition() {
        $this->hasColumn('name','string',30);
    }
}
class UserReference extends Doctrine_Record {
    public function setTableDefinition() {
        $this->hasColumn('user_id','integer');
        $this->hasColumn('user_id2','integer');
    }
}
</code>