Mục tiêu của tôi là tồn tại một đối tượng được khởi tạo với GSON với cơ sở dữ liệu có địa chỉ.Hợp nhất đối tượng Realm & đối tượng Gson
Vấn đề của tôi là như sau:
tôi có thể tạo một đối tượng với GSON, vì vậy GSON sẽ chăm sóc của tất cả các tài sản, nhưng sau đó nó sẽ không được tiếp tục tồn để db
Tôi có thể khởi tạo một đối tượng với Realm, nhưng sau đó tôi phải điền vào tất cả các setters cho các thuộc tính.
Trong onCreate của tôi, phần này là như nhau cho cả hai phương pháp
//delete previous realm file
Realm.deleteRealmFile(this);
//gson instance
Gson gson = new Gson();
//realm instance
realm = Realm.getInstance(this);
** Tên của lớp học của tôi là Vacature **
Thông tin: Tôi biết rằng đoạn mã sau cần phải được bên trong:
realm.beginTransaction();
// code here
realm.commitTransaction();
Lựa chọn 1:
//get class with gson
Vacature vacatureGson = gson.fromJson(jsonString, Vacature.class);
này sẽ không làm việc bởi vì bạn phải tạo một đối tượng lĩnh vực bằng cách sử dụng
Class instance = realm.createObject(Class.class); // Create a new object
Phương án 2:
//get instance with gson
Vacature vacatureGson = gson.fromJson(jsonString, Vacature.class);
//make instance with realm
Vacature realmVacature = realm.createObject(Vacature.class);
realmVacature = vacatureGson;
này sẽ không làm việc vì đây không phải là một cách thích hợp để sao chép tất cả các thuộc tính từ một đối tượng này sang đối tượng khác. Nếu có một cách tốt để sao chép tất cả các thuộc tính từ gsonObject sang realmObject, tùy chọn 2 có thể hoạt động.
Bất kỳ ý tưởng nào về cách giải quyết câu đố này?
Tôi đã nhìn vào ví dụ mà :) bạn đang làm một công việc tuyệt vời cho đến nay! Nếu tôi hiểu chính xác, trong ví dụ này, bạn cài đặt thủ công. Trong khi đó, tôi đang tìm kiếm trên Internet cho một deepcopy-all-the-tính chất dung dịch rắn :) – TomCB
Hãy giữ cho chúng tôi cập nhật về vấn đề này. Nếu bạn không thể tìm thấy giải pháp, hãy cho cộng đồng biết! Cùng nhau chúng ta có thể làm việc nó ra! – TomCB
Tôi có một ý tưởng vững chắc về cách giải quyết vấn đề này. Tôi sẽ cố gắng phát triển một bằng chứng về khái niệm càng sớm càng tốt. – Emanuelez