2016-08-09 2 views
1

파이썬 ndb.Model은 엔티티가 데이터 스토어에 저장된 후에 작업을 수행 할 수있는 편리한 _post_put_hook을 가지고 있습니다. Go의 모델은 단지 구조체이므로이 기능은 어떻게 지원됩니까?_post_put_hook in Go

답변

1

응용 프로그램 엔진 데이터 저장소 작업은 PropertyLoadSaver 인터페이스를 입력으로 사용합니다. 다음 문서와

func Put(c context.Context, key *Key, src interface{}) (*Key, error) 

에 대한 src :

넣고 키 K와 데이터 저장소에 엔티티 SRC를 저장 예를 들어, datastore.Put는 다음과 같은 서명이 있습니다. SRC는 구조체 포인터를 수 또는이 다양한 데이터 저장소 작업 주위에 자신 만의 동작을 구현 할 수 있다는 것을 의미 PropertyLoadSaver

를 구현해야합니다. 예는 here입니다.

+0

이것은'post_put'이 아니라'pre_put' 일 것입니다. –

+0

엔티티의'Save' 인터페이스 메소드에서 어떤 시점에서'datastore.SaveStruct' 함수를 호출하게 될 것입니다. 당신이 필요로하는 모든 후 처리 작업이 무엇이든, 그것은 성공 상태에 따라이 호출 후에 갈 수 있습니다. – abhink

+1

아니요, SaveStruct를 호출 할 필요는 없습니다. 예를 들어 docs - https://cloud.google.com/appengine/docs/go/datastore/reference#hdr-The_PropertyLoadSaver_Interface의 예를 참조하십시오. 그리고 전화를 걸어도 DB에 저장되지 않습니다. 속성 .https에 serialize하면됩니다. //cloud.google.com/appengine/docs/go/datastore/reference#SaveStruct _post_put. _post_put을 가지려면 API를 통해 래퍼가 필요하며 어디에서나 사용할 수 있습니다. –