代码之家  ›  专栏  ›  技术社区  ›  NickUnuchek Romulano

如何从DB方案中的特定领域文件中排除领域模型类?

  •  2
  • NickUnuchek Romulano  · 技术社区  · 7 年前

    领域版本:

    classpath“io.realm:realm gradle plugin:5.8.0”
    < /代码> 
    
    

    ifound thati should add modules toio.realm.realmconfiguration。所以我做了这个:

    realmconfiguration.builder builder=new realmconfiguration.builder()。
    .DeleteRealmimfMigrationNeeded()。
    .架构版本(1)
    .encryption key(/*我的加密密钥*/)
    .name(“支付卡领域”);
    
    builder.addmodule(new rpaycardrealmmodule());
    
    返回realm.getInstance(builder.build());
    < /代码> 
    
    

    rpaycardrealmmodule.class

    @realmmodule(library=true,classes={
    RayCARD.类
    })
    公共类rpaycardrealmmodule{
    }
    < /代码> 
    
    

    rpaycard.类

    @lombok.getter
    @ LoBOBOK.SETER
    @lombok.toString(includeFieldNames=false)
    @ LoBOBK.Bu建器
    @Lombok.Allargsconstructor公司
    @Lombok.noargsconstructor公司
    @lombok.equals和hashcode(of=“id”)。
    公共类rpaycard扩展realmobject{
    @io.realm.annotations.primarykey(域注释.primarykey)
    @IO.realm.annotations.必需
    字符串ID;
    
    专用字符串billnumber;
    私有字符串卡号;
    私有字符串cardexpirationdate;
    私有字符串cardtype;
    私人字符串持卡人姓名;
    选择私有布尔值;
    
    }
    < /代码> 
    
    

    但是当我查看数据库文件“pay-card.realm”时。

    看起来像那样。为什么将其他类添加到DB方案中?如何排除它们? .我应该添加模块到io.realm.RealmConfiguration.所以我做了这个:

    RealmConfiguration.Builder builder = new RealmConfiguration.Builder()
                .deleteRealmIfMigrationNeeded()
                .schemaVersion(1)
                .encryptionKey(/*my encryption key*/)
                .name("pay_card.realm");
    
            builder.addModule(new RPayCardRealmModule());
    
        return Realm.getInstance(builder.build());
    

    rpaycardrealmmodule.class

    @RealmModule(library = true,classes = {
            RPayCard.class
    })
    public class RPayCardRealmModule {
    }
    

    RayCARD.类

    @lombok.Getter
    @lombok.Setter
    @lombok.ToString(includeFieldNames = false)
    @lombok.Builder
    @lombok.AllArgsConstructor
    @lombok.NoArgsConstructor
    @lombok.EqualsAndHashCode(of = "id")
    public class RPayCard extends RealmObject {
        @io.realm.annotations.PrimaryKey
        @io.realm.annotations.Required
        String id;
    
        private String billNumber;
        private String cardNumber;
        private String cardExpirationDate;
        private String cardType;
        private String cardHolderName;
        private boolean selected;
    
    }
    

    但是当我查看数据库文件“pay-card.realm”时。

    看起来像那样。为什么将其他类添加到DB方案中?如何排除它们?

    1 回复  |  直到 7 年前
        1
  •  2
  •   haroldolivieri    7 年前

    RealmModule documentation

    realms默认行为是自动创建 实模块 打电话 DefaultRealmModule 它包含所有类扩展 RealmObject 在一个项目中。此模块由领域自动识别。

    builder.addModule() documentation

    Fixme:临时可见的调试方法。将无条件添加模块。向已定义的模块添加模块。

    RealmConfiguration.Builder modules documentation

    用一个或多个realmmodules替换现有模块。使用此方法将用提供的模块定义的模式替换此领域的当前模式。 使用realm.getDefaultModule()可以找到对包含项目中所有领域类(但不是依赖项)的默认领域模块的引用。因此,使用以下代码组合应用程序项目的模式和库依赖项: builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

    你应该使用 RealmConfiguration.Builder.modules() 首先清除模块列表 builder.addModule(new RPayCardRealmModule())

    推荐文章