메소드의 트랜잭션은 메소드의 인수 인 변수를 포함하지 않습니다. 내 응용 프로그램에서 다른 모델의 변경없이 entity
이 증가되기 때문에. 엔티티의 속성 x
위의 예에서 NDB의 트랜잭션에는 메소드의 인수가 포함되어 있지 않습니다.
@ndb.transactional(xg=true)
def method(entity):
# `entity` is a datastore entity
# Transaction works here
Model.foo()
# ...here too
Model.bar()
# But not here! Always incremented.
entity.x += 1
entity.put()
는 트랜잭션이 실패하는 경우에도 증가한다.
맞습니까?
변수가 참조되지 않으면 오류가 발생합니다. 트랜잭션 내부에서 엔티티가 시작되지 않습니다. 이온. A 키를 전달하여 오브젝트가 트랜잭션의 일부가되도록 가져와야합니다. –
그래서 ** 트랜잭션 내부에서이'entity = key.get()'**를 수행 할 때 엔티티가 보호됩니까? – Graduate
예, @dragonx answer를 참조하십시오. –