我定義了一個Google Cloud Endpoints,它使用Objectify
來處理數據存儲。問題在於我的模型使用了對象化類com.googlecode.objectify.Key
。Google Cloud Endpoint和Objectify
@Entity
public class RealEstateProperty implements Serializable {
@Id
private Long id;
@Parent
private Key<Owner> owner;
private String name;
private Key<Address> address;
}
在我的終點,我定義創建一個RealEstateProperty
的方法:
@ApiMethod(name = "create", path = "properties", httpMethod = HttpMethod.POST)
public void create(RealEstateProperty property, User user) throws Exception {
}
在API Explorer
,該create
方法需要代表爲地址的Key
的字符串。問題是我想提供地址而不是Key
。
是否可以創建一個端點objectify
?如果是這樣,你如何設計你的數據模型來處理Key
?
這是我第一次嘗試,但似乎'objectify'處理與'Key'對象的一對一關係。當我沒有使用Key時,我在保存實體時遇到了異常。 '地址不是支持的類型'。 – Sydney
我不確定我是否正確理解您,但是: 1)對於多值關係,請參閱: https://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Multi-Value_Relationship 2 )不保存RealEstatePropertyAPI獲取地址(和另一個數據)。在數據存儲區中查找給定地址並獲取密鑰或創建新密鑰,然後創建新的RealEstateProperty並填充數據。 – Mateusz
好吧,我知道了,所以沒有辦法直接使用'objectify'模型。我必須使用臨時對象從客戶端獲取數據,然後將其轉換爲數據模型。 – Sydney