sqlalchemy身份地图问题

vik*_*dat 4 python sqlalchemy identity-map

身份图和工作单元模式是sqlalchemy比django.db更具吸引力的部分原因.但是,我不确定身份映射如何工作,或者当应用程序配置为wsgi并且直接通过api调用而不是共享服务访问orm时它是否有效.我想,apache会为每个请求创建一个带有自己的python实例的新线程.因此,每个实例都有自己的sqlalchemy类实例,并且无法使用标识映射.它是否正确?

Mar*_*tin 6

我认为你误解了身份地图模式.

来自:http://martinfowler.com/eaaCatalog/identityMap.html

身份映射会记录在单个业务事务中从数据库中读取的所有对象的记录.

记录保存在单个业务事务的身份映射中.这意味着无论您的Web服务器如何配置,您可能不会将它们保留的时间超过请求(或将它们存储在会话中).

通常,您不会有很多用户参与单一业务转换.无论如何,您可能不希望您的用户共享对象,因为他们最终可能会做出相互矛盾的事情.

  • 啊,谢谢.我认为这是单笔交易.你是马丁·福勒还是巧合地命名为马丁? (2认同)