title: SQLAlchemy how to smart reduce query with indentity value
body: <p>the following example,the school model has a unique field "key"
  once i called School.get(1),
  when i called School.get(1) again.
  there will no query,that's good.
  but when a call School.get_by_key('gxu')
  query calls.</p>
  
  <p>What i want is ,cause "key" is unique,so can SQLALchemy be smart not to query again?</p>
  
  <pre><code>In [3]: school = School.get(1)
  INFO-2013-06-14 18:08:17,903:BEGIN (implicit)
  INFO-2013-06-14 18:08:17,904:SELECT school_info._id AS school_info__id, school_info."key" AS school_info_key, school_info.name AS school_info_name 
  FROM school_info 
  WHERE school_info._id = ?
  INFO-2013-06-14 18:08:17,905:(1,)
  DEBUG-2013-06-14 18:08:17,906:Col ('school_info__id', 'school_info_key', 'school_info_name')
  DEBUG-2013-06-14 18:08:17,906:Row (1, u'gxu', u'\u5e7f\u897f\u5927\u5b66')
  
  In [4]: gxu_school = School.get_by_key('gxu')
  INFO-2013-06-14 18:08:32,042:SELECT school_info._id AS school_info__id, school_info."key" AS school_info_key, school_info.name AS school_info_name 
  FROM school_info 
  WHERE school_info."key" = ?
  LIMIT ? OFFSET ?
  INFO-2013-06-14 18:08:32,045:(u'gxu', 1, 0)
  DEBUG-2013-06-14 18:08:32,046:Col ('school_info__id', 'school_info_key', 'school_info_name')
  DEBUG-2013-06-14 18:08:32,047:Row (1, u'gxu', u'\u5e7f\u897f\u5927\u5b66')
  
  In [5]: 
  </code></pre>