Taller 5- Verificar si existe al guardar

Usaremos una búsqueda para determinar si existe o no ese documento en la colección

 Optional<Persona> optional = personaRepository.findById(persona);
            if (optional.isPresent()) {
                JsfUtil.warningMessage("Existe una persona con esa cedula");
                return null;
            }

Desabilitar la busqueda por @Id automáticamente, usamos repository.save(entity,false)

  if (personaRepository.save(persona,false)) {
                JsfUtil.successMessage("Guardado");
            } else {
                JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
            }

Segmento de código

public String save() {
        try {
            Optional<Persona> optional = personaRepository.findById(persona);
            if (optional.isPresent()) {
                JsfUtil.warningMessage("Existe una persona con esa cedula");
                return null;
            }
            if (personaRepository.save(persona, false)) {
                JsfUtil.successMessage("Guardado");
            } else {
                JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
            }
        } catch (Exception e) {
            JsfUtil.errorDialog("save()", e.getLocalizedMessage());
        }

        return "";
    }

}

PersonaController

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.practica.controller;

import com.avbravo.jmoordb.mongodb.history.repository.RevisionHistoryRepository;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Persona;
import com.avbravo.practicaejb.repository.PersonaRepository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author avbravo
 */
@Named
@ViewScoped
public class PersonaController implements Serializable {
Persona persona = new Persona();
    @Inject
    PersonaRepository personaRepository;
  
    List<Persona> personaList = new ArrayList<>();

    public List<Persona> getPersonaList() {
//        return personaList;
        return personaRepository.findAll();
    }

    public void setPersonaList(List<Persona> personaList) {
        this.personaList = personaList;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }

    @PostConstruct
    public void init() {
        
    }

    public String save() {
        try {
           
            Optional<Persona> optional = personaRepository.findById(persona);
 
            if (optional.isPresent()) {
                JsfUtil.warningMessage("Existe una persona con esa cedula");
                return null;
            }
            if (personaRepository.save(persona, false)) {
                JsfUtil.successMessage("Guardado");
              
                persona = new Persona();
            } else {
                JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
            }
        } catch (Exception e) {
            JsfUtil.errorDialog("save()", e.getLocalizedMessage());
        }

        return "";
    }

}

Last updated

Was this helpful?