Realmデータベースは履歴データを格納します.3つのデータを保存します.どのように実現しますか.


1.プライマリ・コードを先に入力します.データベース・ストレージのアクション
            //TODO                  。          
            final CustomTuiJianSearch bean = new CustomTuiJianSearch();
            bean.setId(baseInfoMapBean.getId() + "");
            bean.setCompanyName(baseInfoMapBean.getKhmc());
            bean.setIsValid(baseInfoMapBean.getIsvalid());
            bean.setInsertTime(System.currentTimeMillis());
       
 Realm realm = Realm.getInstance(MApplication.getInstance().config);
            //     ,             。       ,   3  。      。    
            final RealmResults equalResults = realm.where(CustomTuiJianSearch.class).equalTo("id", baseInfoMapBean.getId() + "")
                    .findAll();
            if (equalResults.size() == 0) {//       。
                 RealmResults historyList = realm.where(CustomTuiJianSearch.class)
                        .findAll();
                //      3  。         。   
                if (historyList.size() >= 3) {
                    historyList = historyList.sort("insertTime", Sort.ASCENDING);
                    final RealmResults finalHistoryList = historyList;
                    realm.executeTransaction(new Realm.Transaction() {
                        @Override
                        public void execute(Realm realm) {
                            finalHistoryList.deleteFirstFromRealm();
//                            realm.copyToRealmOrUpdate(bean);
                        }
                    });
                }
                //    
                realm.executeTransaction(new Realm.Transaction() {
                    @Override
                    public void execute(Realm realm) {
                        realm.copyToRealmOrUpdate(bean);

                    }
                });
            }else{
                //    。      。    

                realm.executeTransaction(new Realm.Transaction() {
                    @Override
                    public void execute(Realm realm) {
                        /**
                         *  Model        ,    copyToRealmOrUpdate      。  id   ,      
                         *       ,      ;  ,          。
                         */
                        realm.copyToRealmOrUpdate(bean);
                    }
                });
            }

2.上のCustomTuiJianSearchモデルクラス.中にはメインキーが入っています.上のコードを挿入するときはrealmを使います.copyToRealmOrUpdate(bean)
public class CustomTuiJianSearch extends RealmObject {
    @PrimaryKey
    private String id;//         id。          
    private String companyName;//    
    private String isValid;//      1         
    private long insertTime;//     。       


    public long getInsertTime() {
        return insertTime;
    }

    public void setInsertTime(long inserTime) {
        this.insertTime = inserTime;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getIsValid() {
        return isValid;
    }

    public void setIsValid(String isValid) {
        this.isValid = isValid;
    }
}

3.realmはこのオブジェクトを取得します.このオブジェクトはアプリケーションで宣言されています.
Realm realm = Realm.getInstance(MApplication.getInstance().config);
    public RealmConfiguration config;   
       public voic onCreate(){
//  Realm     
        Realm.init(this);

        config = new RealmConfiguration.Builder()
                .name("yi.realm")//             ,             
                .schemaVersion(13)//   
                .build();

        Realm.setDefaultConfiguration(config);
}