在Realm过滤父母和子女 - Android

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Realm过滤父母和子女 - Android相关的知识,希望对你有一定的参考价值。

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

该查询将过滤所有大于通过日期的产品,并在里面过滤所有日期大于通过日期的compras。

是否可以通过查询来实现,或者我真的需要执行产品的查询,然后把这个列表删除我不想要的compras?

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.comrealmrealm-javaissues5730。 从来没有被添加,我想他们也不会添加,所以你必须手动操作。 :(

以上是关于在Realm过滤父母和子女 - Android的主要内容,如果未能解决你的问题,请参考以下文章

子女离婚不随父母离婚而动

子女有恩论

为什么有的父母喜欢在子女之间,来回拨弄是非,使他们反目?

如何在Laravel中建立父母/子女关系?

父母与子女之间的关系不起作用

父母等待子女回家图片只想静静的一个人