1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Comparação para não cadastrar um Item Repetido collection

Pessoal, boa tarde. Tudo bom? Eu tenho um cadastro de um ciclo onde tenho a seguinte controller, e a seguinte service que seguem abaixo. Minha dúvida é a seguinte, como faço para fazer uma comparação e não deixar o usuário cadastrar um ciclo que já foi cadastrado. Não deixa por exemplo ele cadastrar "Medicina" e novamente, futuramente ele cadastrar "Medicina" novamente. Help-me?

@Named
@ViewScoped
public class CadastroCicloBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    private CicloService cicloService;

    private Ciclo ciclo;

    @PostConstruct
    private void init() {
        this.limpar();
    }

    @Transactional
    public void salvar() {
        try {
            this.cicloService.salvar(ciclo);
            FacesUtil.addSuccessMessage("Ciclo cadastrado com sucesso!");
        } catch (IllegalArgumentException e) {
            FacesUtil.addErrorMessage("Erro ao cadastrar o ciclo.");
        }

        this.limpar();
    }

    private void limpar() {
        this.ciclo = new Ciclo();
    }

    public Ciclo getCiclo() {
        return ciclo;
    }

    public void setCiclo(Ciclo ciclo) {
        this.ciclo = ciclo;
    }

Service:

public class CicloService implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    private CicloDAO cicloDAO;

    @Transactional
    public void salvar(Ciclo ciclo) {
        if (ciclo.getNome() == null || ciclo.getNome().trim().equals("")) {
            throw new IllegalArgumentException("Por favor, preencha o Ciclo.");
        }

        ciclo.setDataInicioCiclo(Calendar.getInstance());

        this.cicloDAO.salvar(ciclo);
    }
  • coloque anotação de chave única, assim não será permitido no banco conter repetição da coluna.

    @Entity @Table(uniqueConstraints = @UniqueConstraint(columnNames = "nome_da_coluna")) public class Ciclo

    Israel Araújo Guimarães   15 de set de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee java eclipse netbeans jsf primefaces cdi ou faça a sua própria pergunta.