我在我的项目中使用了sqlalchemy for orm。我的问题是,每次我使用session.refresh(OBJ)新的数据库连接被使用,直到session.close()被调用。 因此,当我想刷新多个对象时,我很快就会断开连接。SQLAlchemy session.refresh()产生新的连接
会议设施:
session = session_maker()
try:
yield session
session.commit()
for obj in session:
session.refresh(obj)
except Exception as e:
session.rollback()
raise e
finally:
session.close()
用法:
with make_session(...) as session:
for mapped in [self._mapper.map(obj) for obj in objects]:
saved_entities.append(mapped)
session.add(mapped)
session.flush()
我使用的刷新,因为我有一个充满上更新列,我想返回当前值。
好奇的是,当我这样做:
for obj in session:
session.commit()
session.refresh(obj)
只有两个连接使用(这是罚款),但对象没有数据。
我也试过'session.connection()来关闭()'后'session.refresh(OBJ)',但没有成功。 – literg