2016-08-30 92 views
0

我是Android初學者,我想了解GAE如何與Objectify合作。物化實體關係

所以我創建了兩個類,一個是'User',另一個是'Journey'。每一次旅程都屬於一個用戶。

用戶類別

@Entity 
public class User { 
    @Id 
    private Long id; 
    @Index private String mac; 
    private String name; 
    private String firstName; 
    private Long age; 
    private String email; 
    private String password; 
// Getters and setters 
} 

西遊類

@Entity 
public class Journey { 
    @Id 
    private Long id; 
    Key<User> driver; 
    private Event event; 
    private Long nbPlaces; 
    private String departureTime; 
    private String destination; 
} 
  1. 我所著的用戶類下面的方法,這是正確的?

    @瞬變 Key getKey(){ return Key.create(User.class,id); }

  2. 如何在我的旅程對象中設置用戶的密鑰? (我想我不能用一個簡單的二傳手

感謝

回答

0

此前宣稱:!

import static com.googlecode.objectify.ObjectifyService.ofy; 

爲了使這個對象:

public User get(Long id) { 
    return ofy().load().key(Key.create(User.class, id)).now(); 
} 

而設置Key從User轉換爲Journey類,當對象爲c時,需要傳入構造函數重新計算,或者獲取對象Journey設置參數並保存。但是,你需要事先拿到鑰匙:

public Long getKey(User user) { 
    Key<User> generatedKey = ofy().save().entity(user).now(); 
    return generatedKey.getId(); 
} 

在此之後,你可以附上Users列表爲Journey類。

+0

感謝您的回答。但是我不知道我要粘貼這些代碼的位置。在實體還是終點? 對不起,但我是neewbie。 –

+0

在您的端點。這裏有更多的信息對你有用:https://rominirani.com/android-studio-cloud-endpoints-objectify-persistence-76b26c13bb2a#.mwuiaz7st –

+0

好的,所以我必須覆蓋生成的get方法到用戶端點與你寫的第一個代碼是正確的? 我在哪裏編寫代碼的第二部分?我無法將此方法放入端點,因爲端點方法無法返回原始類型。 –