title: SQLAlchemy DetachedInstanceError with regular attribute (not a relation)
body: <p>I just started using SQLAlchemy and get a DetachedInstanceError and can't find much information on this anywhere. I am using the instance outside a session, so it is natural that SQLAlchemy is unable to load any relations if they are not already loaded, however, the attribute I am accessing is not a relation, in fact this object has no relations at all. I found solutions such as eager loading, but I can't apply to this because this is not a relation. I even tried "touching" this attribute before closing the session, but it still doesn't prevent the exception. What could be causing this exception for a non-relational property even after it has been successfully accessed once before? Any help in debugging this issue is appreciated. I will meanwhile try to get a reproducible stand-alone scenario and update here.</p>
  
  <p>Update: This is the actual exception message with a few stacks:</p>
  
  <pre><code>  File "/home/hari/bin/lib/python2.6/site-packages/SQLAlchemy-0.6.1-py2.6.egg/sqlalchemy/orm/attributes.py", line 159, in __get__
      return self.impl.get(instance_state(instance), instance_dict(instance))
    File "/home/hari/bin/lib/python2.6/site-packages/SQLAlchemy-0.6.1-py2.6.egg/sqlalchemy/orm/attributes.py", line 377, in get
      value = callable_(passive=passive)
    File "/home/hari/bin/lib/python2.6/site-packages/SQLAlchemy-0.6.1-py2.6.egg/sqlalchemy/orm/state.py", line 280, in __call__
      self.manager.deferred_scalar_loader(self, toload)
    File "/home/hari/bin/lib/python2.6/site-packages/SQLAlchemy-0.6.1-py2.6.egg/sqlalchemy/orm/mapper.py", line 2323, in _load_scalar_attributes
      (state_str(state)))
  DetachedInstanceError: Instance &lt;ReportingJob at 0xa41cd8c&gt; is not bound to a Session; attribute refresh operation cannot proceed
  </code></pre>
  
  <p>The partial model looks like this:</p>
  
  <pre><code>metadata = MetaData()
  ModelBase = declarative_base(metadata=metadata)
  
  class ReportingJob(ModelBase):
      __tablename__ = 'reporting_job'
  
      job_id         = Column(BigInteger, Sequence('job_id_sequence'), primary_key=True)
      client_id      = Column(BigInteger, nullable=True)
  </code></pre>
  
  <p>And the field client_id is what is causing this exception with a usage like the below:</p>
  
  <p>Query:</p>
  
  <pre><code>    jobs = session \
              .query(ReportingJob) \
              .filter(ReportingJob.job_id == job_id) \
              .all()
      if jobs:
          # FIXME(Hari): Workaround for the attribute getting lazy-loaded.
          jobs[0].client_id
          return jobs[0]
  </code></pre>
  
  <p>This is what triggers the exception later out of the session scope:</p>
  
  <pre><code>        msg = msg + ", client_id: %s" % job.client_id
  </code></pre>