summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/orm/session.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index f8589dbe4..7e9b351e1 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -148,7 +148,8 @@ class SessionTransaction(object):
self.nested = nested
def connection(self, bindkey, **kwargs):
- return self.session.connection(bindkey, **kwargs)
+ engine = self.session.get_bind(bindkey, **kwargs)
+ return self.get_or_add(engine)
def _begin(self, **kwargs):
return SessionTransaction(self.session, self, **kwargs)
@@ -623,6 +624,8 @@ class Session(object):
else:
if isinstance(mapper, type):
mapper = _class_mapper(mapper)
+ else:
+ mapper = mapper.compile()
e = mapper.mapped_table.bind
if e is None:
raise exceptions.InvalidRequestError("Could not locate any Engine or Connection bound to mapper '%s'" % str(mapper))