检查新的Realm对象是否已保存

3

有人知道如何检查领域对象是否尚未保存到数据库吗?
我想实现以下示例中的逻辑:

protected boolean prepareToSave(Product product, Realm realm) {
    // are we have enought space at storage?
    int productLimit = getLimit();
    if(
       /* product.isStoredInDB() && */ 
       realm.where(Product.class).count() >= productLimit)
       Toast.makeText(this, "Not enought space at storage", Toast.LENGTH_LONG).show();
    else
       // do another stuff
}

编辑:

其中:

public class Product extends RealmObject {

    @PrimaryKey private long id;
    @Required private String title;
    private String note;
    private byte[] image;
    private byte[] thumbnail;

    private double count = Double.NaN;
    private double minimumCount = Double.NaN;

    // getters and setters
}

方法getLimit()仅返回存储的合成限制,而不是实际的SD卡或内部存储容量。此限制用于提供应用内购买功能。

1个回答

4
您可以使用

标签来


Product p = getProduct()
if (!p.isManaged()) {
  // Object isn't saved in Realm 
}

但是你的代码片段似乎表明你想检查设备是否有足够的空间来存储你的更改。实际上,要确定这一点并不容易,因为它将非常依赖于你要存储的数据类型。


谢谢你的回答,Christian。我已经写了额外的信息来澄清我的问题。你能回答一下吗:createObject(Class<extends io.realm.RealmModel>, Object)方法创建的Product类实例是_managed_还是_unmanaged_? - Sergei Bubenshchikov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接