#java #android #arrays #realm
#java #Android #массивы #realm
Вопрос:
У меня есть модель Pedido, в которой есть RealmList Itens, а у Itens есть produt_id, чтобы добавить Itens в Pedidos, я использую следующий метод, но таким образом я могу добавить тот же элемент в Pedidos, я не могу найти способ проверить, существует ли этот элемент уже.
Класс Pedido:
public class Pedidos extends RealmObject implements Serializable {
@SerializedName("id")
String id;
@SerializedName("produtos")
RealmList<Itens> itens;
public Pedidos() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public RealmList<Itens> getItens() {
return itens;
}
public void setItens(RealmList<Itens> itens) {
this.itens = itens;
}
}
Класс Itens:
public class Itens extends RealmObject implements Serializable {
String id_local;
String id_pedido_local;
@SerializedName("id")
String id;
@SerializedName("pedido_id")
String id_pedido;
@SerializedName("produto_id")
String produto_id;
@SerializedName("operacao_id")
String operacao_id;
@SerializedName("quantidade_pedida")
String quantidade;
@SerializedName("valor_unitario")
String valor_unitario;
@SerializedName("cfop")
String cfop;
@SerializedName("valor_total")
String valor_total;
@SerializedName("valor_tributo_st")
String valor_tributo_st;
@SerializedName("valor_tributo_icms_exibir")
String valor_tributo_icms_exibir;
@SerializedName("valor_tributo_cofins_exibir")
String valor_tributo_cofins_exibir;
@SerializedName("ncm")
String ncm;
Float valorTotal;
public Itens() {
}
public String getId_pedido_local() {
return id_pedido_local;
}
public void setId_pedido_local(String id_pedido_local) {
this.id_pedido_local = id_pedido_local;
}
public String getId_local() {
return id_local;
}
public void setId_local(String id_local) {
this.id_local = id_local;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getId_pedido() {
return id_pedido;
}
public void setId_pedido(String id_pedido) {
this.id_pedido = id_pedido;
}
public String getProduto_id() {
return produto_id;
}
public void setProduto_id(String produto_id) {
this.produto_id = produto_id;
}
public String getOperacao_id() {
return operacao_id;
}
public void setOperacao_id(String operacao_id) {
this.operacao_id = operacao_id;
}
public String getQuantidade() {
return quantidade;
}
public void setQuantidade(String quantidade) {
this.quantidade = quantidade;
}
public String getValor_unitario() {
return valor_unitario;
}
public void setValor_unitario(String valor_unitario) {
this.valor_unitario = valor_unitario;
}
public String getCfop() {
return cfop;
}
public void setCfop(String cfop) {
this.cfop = cfop;
}
public String getValor_total() {
return valor_total;
}
public void setValor_total(String valor_total) {
this.valor_total = valor_total;
}
public String getValor_tributo_st() {
return valor_tributo_st;
}
public void setValor_tributo_st(String valor_tributo_st) {
this.valor_tributo_st = valor_tributo_st;
}
public String getValor_tributo_icms_exibir() {
return valor_tributo_icms_exibir;
}
public void setValor_tributo_icms_exibir(String valor_tributo_icms_exibir) {
this.valor_tributo_icms_exibir = valor_tributo_icms_exibir;
}
public String getValor_tributo_cofins_exibir() {
return valor_tributo_cofins_exibir;
}
public void setValor_tributo_cofins_exibir(String valor_tributo_cofins_exibir) {
this.valor_tributo_cofins_exibir = valor_tributo_cofins_exibir;
}
public Float getValorTotal() {
return valorTotal;
}
public void setValorTotal(Float valorTotal) {
this.valorTotal = valorTotal;
}
public String getNcm() {
return ncm;
}
public void setNcm(String ncm) {
this.ncm = ncm;
}
}
Метод:
public void updatePedidoItem(String id, String empresa_id, RealmList<Produtos> produtos) {
realm.beginTransaction();
Pedidos pedido = realm.where(Pedidos.class).equalTo("id_pedido_local", id).equalTo("empresa_id", empresa_id).findFirst();
for (int j = 0; j < produtos.size(); j ) {
Itens mItens = realm.createObject(Itens.class);
mItens.setId_local(UUID.randomUUID().toString());
mItens.setId_pedido_local(id);
mItens.setProduto_id(produtos.get(j).getProduto_id());
mItens.setQuantidade(produtos.get(j).getQuantidade());
mItens.setValor_unitario(produtos.get(j).getValor());
mItens.setOperacao_id(produtos.get(j).getOperacao_id());
if (pedido.getItens().size() == 0) {
pedido.getItens().add(mItens);
} else {
for (int i = 0; i < pedido.getItens().size(); i ) {
if (!pedido.getItens().contains(mItens)) {
pedido.getItens().add(mItens);
}
}
}
}
realm.commitTransaction();
}
Комментарии:
1.
@PrimaryKey
—
Ответ №1:
Отметьте свой идентификатор в качестве первичного ключа в realm
@SerializedName("id")
@PrimaryKey
String id;