2017-09-21 8 views
0

カスタムクラスを持つRealmオブジェクトの構築に問題があります。サーバはJSONレスポンスを送信するとカスタムクラスを持つRealmオブジェクトをシリアル化する方法

@Parcel(
    value = Parcel.Serialization.BEAN, 
    analyze = { Message.class }) 

@RealmClass 
public class Message implements Comparable<Message>, RealmModel {` 

@PrimaryKey 
@Index 
private long id; 
@JsonProperty("thread_id") 
long threadId; 
@JsonProperty("message") 
public String message; 
@JsonProperty("user") 
public User user; 
... 
} 

することは、問題がユーザーである

realm.createObjectFromJson(MesssageMessage.class, JSONObject) 

でメッセージレルムオブジェクトとして解析してみてください。コンパイルエラー "Filed user is not supported"が表示されます。

以下は、レルムオブジェクトではないUserクラスです。

@JsonIgnoreProperties("incomplete_signed_up") 
public class User implements KeepClassFromProguard, Parcelable { 
public static final Parcelable.Creator<User> CREATOR = new 
Parcelable.Creator<User>() { 


    @Override 
    public User createFromParcel(Parcel in) { 
     return new User(in); 
    } 

    @Override 
    public User[] newArray(int size) { 
     return new User[size]; 
    } 
}; 

public long id; 
@JsonProperty("account_id") 
private long accountId; 
@JsonProperty("display_name") 
public String display_name; 
@JsonProperty("nick_name") 
public String nickname; 
@JsonProperty("user_detail") 
public UserDetail userDetail; 

... 
} 

私はhttps://gist.github.com/cmelchior/ddac8efd018123a1e53ahttp://parceler.org/#getting_parcelerを読んで、私はまだ答えますcould't。 すべてのクラスをrealmオブジェクトに変更することはできません。それらはすべて別のカスタムクラスを持っているからです。

これはどのように処理されるのですか?良い例があることを願っています。おかげさまで

答えて

1

RealmModelのすべての参照は、他のRealmModelクラスを参照する必要があります。これを守る唯一の方法です。

@Ignoreフィールドのuserフィールドに保存できますが、Realmでは保存されません。

関連する問題