title: CakePHP 2.3 model association using finderQuery works with Model->read() but not with Model->find()
body: <p>I have nearly got Cake to do what I want here but not quite and I think it's because there is a gap in my knowledge.</p>
  
  <p>I have imported a database table of UK postcodes in to my cakePHP app. Here is the structure:</p>
  
  <pre><code>CREATE TABLE IF NOT EXISTS `postcodes` (
    `ref` varchar(6) NOT NULL DEFAULT '',
    `area` varchar(50) NOT NULL DEFAULT '',
    `uk_region` varchar(4) NOT NULL,
    `lat` decimal(6,4) NOT NULL DEFAULT '0.0000',
    `long` decimal(5,4) NOT NULL DEFAULT '0.0000',
    PRIMARY KEY (`ref`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  </code></pre>
  
  <p>Here is a row from that table in CSV format.</p>
  
  <pre><code>"AB10","Aberdeen","SCOT","57.1350","-2.1170"
  </code></pre>
  
  <p>'Accounts' and 'Orders' need to be able to look up these details from a 'Postcode Reference'</p>
  
  <p>So, after a look around I came up with this (I'll just show the Account model) after reading this article <a href="http://www.visuallizard.com/blog/2009/02/19/210" rel="nofollow">http://www.visuallizard.com/blog/2009/02/19/210</a>:</p>
  
  <pre><code>class Account extends AppModel {
      public $hasOne = array('Postcode' =&gt; 
          array(
            'className' =&gt; 'Postcode', 
            'finderQuery' =&gt; 'SELECT Postcode.* FROM accounts, postcodes AS Postcode WHERE accounts.id = {$__cakeID__$} AND accounts.postcode_ref = Postcode.ref', 'foreignKey' =&gt; false
  ));
  
  }
  </code></pre>
  
  <p>Now, if I do either of these where '16' is the test account id:</p>
  
  <pre><code>$this-&gt;Account-&gt;read(null, 16);
  $this-&gt;Account-&gt;find('first', array('conditions' =&gt; array('Account.id' =&gt; 16)));
  </code></pre>
  
  <p>to retrieve the data everything is fine. However, if I do:</p>
  
  <pre><code>$this-&gt;Account-&gt;find('all', array('conditions' =&gt; array('Account.id' =&gt; 16)));
  </code></pre>
  
  <p>I get an array with the correct result but 2,821 times; which is how many postcode entries there are.</p>
  
  <p>Changing it from a $hasOne to a $hasMany also just returns the result once but it's inside $result['Postcode'][0] as all hasMany queries are and that's going to get on my wick as I'm sure some of you may understand.</p>
  
  <p>Any clues as to what I have done here? Have I mis-understood something or is this a CakePHP bug?</p>