2016-10-24 4 views
0

Pedidos에 Artens를 추가하기 위해 Itens의 RealmList가있는 Pedido 모델이 있고 Itens에 produt_id가 있습니다. 다음 방법을 사용하고 있습니다. 그런 식으로 할 수 있습니다. 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(); 

    } 
+0

'@ PrimaryKey'-- – EpicPandaForce

답변

2

마크 아이디 영역 내의 리마 키

@SerializedName("id") 
@PrimaryKey 
String id; 
관련 문제