2009-12-10 3 views
1

그래서 저는 GAE에서 자신의 속성 유형을 정의 할 때 the following 문서를 읽었습니다. 새로운 속성을 확장 할 때 .validate() 메서드를 포함 할 수도 있다는 것을 알았습니다. 이 유효성 검사 메소드는 "할당 된 속성과 호환되는지 확인하기 위해 속성에 할당이 수행 될 때"호출됩니다. 공정한, 그러나 정확히 언제입니까?Google App Engine (GAE)에서 속성 검증이 언제 실행됩니까?

제 질문은 정확히이 유효성 검사 메소드가 언제 호출됩니까? 특히, 놓기 전이나 후에 호출할까요? 트랜잭션에서이 엔티티를 생성하면 트랜잭션 내에서 또는 트랜잭션 전에 호출 된 유효성 검사가 수행됩니까?

나는 모든 속성이 "자체 포함"또는 최대로만 존재해야한다는 것을 알고 있지만 엔터티가 상주하는 상태를 처리해야합니다. 그러나 validate 메서드에서 쿼리를 수행하면 어떻게 될까요? ? 현재 거래 엔티티 그룹과 다른 엔티티 그룹에있는 유효성 검사 내에서 쿼리를 수행하면 오류가 발생합니까?

답변

2

넣기 전에, 그리고 트랜잭션 중에 각각 (물론 유효성 검사가 실패 할 경우 트랜잭션을 중단시킬 수 있습니다). 엔티티의 속성에 대해 "할당이 이루어지면"theentity.theproperty = somevalue을 쓸 때 (또는 암시 적으로 수행 할 때)입니다.

트랜잭션 (유효성 검사 또는 기타)에서 관련이없는 엔티티에 대한 쿼리는 비 트랜잭션 (따라서 매우 경우)이지만 금지되지는 않는다고 생각합니다. 그러나이 마지막 지점에서는 확실하지 않습니다.