2011-05-01 4 views
2

RESTful 시스템에서 서버 (GAE)와 클라이언트 (Android)가 사용하는 많은 사용자 정의 객체 클래스가 있습니다. 관리 용이성을 위해이 오브젝트에 대한 코드는 서버와 클라이언트간에 공통입니다.Objectify - 모든 클래스에 @Id를 추가하십시오.

이러한 개체를 서버 측 Objectify로 저장하려면 한 필드에 @Id 주석을 추가해야합니다. 그러나 클라이언트에서 javax.persistence를 가져 오지 않고 (또는 코드의 별도 클라이언트/서버 복사본을 생성하지 않고) 각 객체 클래스에서이를 수행 할 수 없습니다 (또는 모든 객체에 대해 복제를 통해 "StorableX extends X"를 생성).

어댑터 또는 래퍼 패턴을 사용하여 Objectify를 통해 모든 개체를 동적으로 저장 할 수 있습니까? 이것에 대한 가장 좋은 방법은 무엇입니까? 일반적으로 주석이 실행 한 경우에도, 클래스 패스에 존재하는 주석 인터페이스를 사용하지 않고 주석 클래스를 사용하여 아무 문제가 없다 --John

답변

0

감사합니다. 물론 클래스 바이트 코드가 인스트루먼트되어 있거나 런타임에 주석을 사용하려고하는 클래스가 있으면 다른 문제입니다.

+0

"ID를 유형으로 확인할 수 없습니다."클라이언트를 빌드하고 실행하지 못하게합니다. –

+0

javax.persistence jar를 추가하여 주석이 달린 클래스를 빌드하지만 런타임에 클라이언트의 클래스 경로에 포함시키지 마십시오. 이러한 클래스가 서버 및 클라이언트에 공통적 인 경우 두 계층 모두에 대해 한 번만 컴파일해야하며 두 번 컴파일해야합니다. –

+0

javax.persistence.Id가 주석이 달린 공통 클래스 X로 임포트 된 경우 성공적으로 빌드되고 서버 및 클라이언트의 클래스 경로에 추가 될 수 있습니다. 그러나 클라이언트가 X 유형의 객체를 인스턴스화하려고 시도하면 "import javax.persistence.Id;"를 처리 할 수 ​​없습니다. –

관련 문제