こーゆー単体テストを書いていた。
2と4で発行されるSQLは同じ。で、3で発行したsqlの結果はfindすると反映されているのに、4でSQLを実行すると更新前の結果が返ってきた。
ん。。。。何これキャッシュされてますかこれは・・・?
公式ドキュメントを見ると、いかにもな記述が。
query() does not honor $Model->cacheQueries as its functionality is inherently disjoint from that of the calling model. To avoid caching calls to query, supply a second argument of false, ie: query($query, $cachequeries = false)
http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query
$Model->cacheQueriesの値は関係ないです、queryは独自で頑張ってるんですみたいな記述があるし、SQLの実行結果をキャッシュしたくないならqueryの第2引数にfalseを明示的に入れろだって。$this->query('sql',false);ってことか。
いやー、これ結構気をつけないとヤバいっしょ。