私はsugarOrmを使用していて、住所オブジェクトを使用して場所を保存したいのですが、保存するとすべて問題ありませんが、住所を取得しようとすると常にnullになり、場所からの他のデータは保存され、取得できますが、取得できませんアドレス オブジェクトとその情報を取得できない理由がわかります。
私のコード:
public class PlaceModel extends SugarRecord<PlaceModel> implements Parcelable {
@Ignore
@Expose
private ArrayList<CategoryModel> categories = new ArrayList<CategoryModel>();
@Ignore
@Expose
private ArrayList<MediaContentModel> medias = new ArrayList<MediaContentModel>();
@Ignore
@Expose
private ArrayList<ReviewContentModel> reviews = new A ArrayList<ReviewContentModel>();
@Expose
private String name;
@Expose
@Ignore
private List<Double> location = new ArrayList<Double>();
@Expose
private String website;
@Expose
private AddressModel address;
@SerializedName("global_score")
@Expose
private Integer globalScore;
@SerializedName("popularity_score")
@Expose
private Integer popularityScore;
@SerializedName("quality_score")
@Expose
private Integer qualityScore;
@Expose
@Ignore
private Object prices;
@Expose
@Ignore
private Object hours;
@Expose
@Ignore
private Object phone;
@Expose
private String createdAt;
@Expose
private String updatedAt;
@SerializedName("idObject")
@Expose
private String idPlace;
private String listCategory;
private String listMedias;
private String listReviews;
private String listLocation;
public PlaceModel() {
}
// Setters, getters and stuff for parcelable
}
住所モデル:
public class AddressModel extends SugarRecord<AddressModel> implements Parcelable {
@SerializedName("street_address")
@Expose
private String streetAddress;
@SerializedName("city")
@Expose
private String city;
@SerializedName("state")
@Expose
@Ignore
private Object state;
@SerializedName("postal_code")
private String postalCode;
@SerializedName("country")
@Expose
private String country;
public AddressModel(){
}
// Setters, getters and stuff for parcelable
}
保存すると:
public void getPlaceDetails(String id)
{
RestClient client = RestClient.getInstance();
propertiesReader = new PropertiesReader(mContext);
Properties apiProperties = propertiesReader.loadPropertiesFile("api.properties");
client.createRestClient(apiProperties.getProperty("APIUrl"), mContext);
ApiManager apiManager = client.getApiManager();
PlaceModel place = apiManager.getPlaceDetails(id);
if (place != null) {
Gson gson = new GsonBuilder().create();
place.setListCategory(gson.toJsonTree(place.getCategories()).getAsJsonArray().toString());
place.setListMedias(gson.toJsonTree(place.getMedias()).getAsJsonArray().toString());
place.setListReviews(gson.toJsonTree(place.getReviews()).getAsJsonArray().toString());
place.setListLocation(gson.toJsonTree(place.getLocation()).getAsJsonArray().toString());
places.add(place);
place.save();
}
}
アドレスを取得しようとすると、NullPointerException
. 私はsugarOrmのドキュメントに従いましたが、何か不足していますか?
誰にでも事前に感謝します。