java - 在 Realm 中过滤父级和子级 - Android

标签 java android realm realm-mobile-platform

我有两个类映射为 RealmObject,我想执行一个查询来过滤父类和子类。

查询将过滤所有大于传递日期的产品,并在其中过滤所有日期大于传递日期的比较。

是否可以通过查询或我确实需要执行产品查询,然后获取此列表并删除我不想要的比较?

public class Produto extends RealmObject implements Id{

@PrimaryKey
private Long id;

@Index
@Required
private String codigoBarras;

private String nome;
private String marca;
private String categoria;
private String subCategoria;
private Double quantidade;
private String unidade;
private byte[] imagemData;
private Date dataAlteracao;

private RealmList<Compra> compras;

...

<小时/>
public class Compra extends RealmObject implements Id{

@PrimaryKey
private Long id;

//@LinkingObjects("compras")
private Produto produto = null;

private Double preco;
private String local;
private String mercado;
private Date data;
private Boolean liquidacao = false;
private String observacao;

private Date dataAlteracao;

...

<小时/>
public List<Produto> buscarProdutoEComprasPorDataAlteracao(Long dataAlteracao) {
    RealmResults<Produto> results = realm.where(Produto.class)
            .greaterThan("dataAlteracao", new Date(dataAlteracao))
            .greaterThan("compras.dataAlteracao", new Date(dataAlteracao))
            .sort("codigoBarras")
            .findAll();
    return realm.copyFromRealm(results);
}

最佳答案

//@LinkingObjects("compras")
private Produto produto = null;

您可以将其替换为

@LinkingObjects("compras")
private final RealmResults<Produto> isComprasOfProdutos = null;

虽然如果您当前的查询不起作用,但不幸的是 Realm-Java 不支持 SUBQUERY 也不支持 ALL 谓词,并且 https://github.com/realm/realm-java/issues/5730从未添加过,我认为他们也不会添加它,因此您必须手动执行此操作。 :(

关于java - 在 Realm 中过滤父级和子级 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61400966/

相关文章:

android - 如何在进程之间将文件描述符传递给 Ashmem

带有 NOT IN 的 Swift NSPredicate 子查询?

ios - 将现有 Realm 数据库文件复制到应用程序组位置以进行今天的扩展

java - 如果存在键,如何从稀疏数组中删除项目

java - Apache Camel http 到 http 路由(这可能吗?)

java - 模拟HttpClient的execte()方法

java - 如何将 Java double 转换为 byte[],以及 byte[] 转换为 double(IEEE 754 double 二进制浮点格式)

android - native 代码调试在 Android Studio 3 中不起作用

javascript - YouTube IFrame API 播放方法在触摸某些 Android 平板电脑之前不起作用

javascript - React Native 中应用被杀死后存储数据的数据库