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

Como devo tratar regras de negócio das classes @Entity?

Onde eu trabalho atualmente, sempre criaram as classes de entidade JPA (anotadas com @Entity) com os getters e setters "burros", ou seja, sem nenhuma regra de validação. Somente regras muito básicas eram definidas, como tamanho máximo de campo e nulidade. As regras mais complexas, como por exemplo, validar um cpf (regra de preenchimento) ou só permitir um cpf que não esteja na lista dos órgãos protetores de crédito (regra de negócio), eram definidas em uma classe de business, criada especialmente para cada entidade.

Minha pergunta é: não seria melhor e mais adequado colocar todas essas validações direto nos setters da entidade, de modo que a própria classe se garantiria de que jamais seria criada uma instância "inválida" ou "incorreta" dela mesma?

Como vocês lidam com essa questão?

  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!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags hibernate jpa ou faça a sua própria pergunta.