Utilizando Bean de Entidade no xhtml para pesquisa e insert no PrimeFaces, problemas de validação [RESOLVIDO]

2 respostas
AlexSlender

Bom dia pessoal,

estou com problemas ao utilizar o meu bean de entidade mapeado para JPA, onde tenho todas as anotações de validação, para uma consulta da minha aplicação. A integração do primefaces valida automaticamente as anotações do Bean como todos sabem. Vi inúmeros casos aqui no forum e na internet, de pessoas utilizando o atributo “immediate” e criando um DTO especifico para pesquisa, ou até mesmo atributos isolados no ManageBean.

Confesso que não gosto dessa abordagem, criar um DTO pra uma simples consulta, sendo que eu tenho o Bean para utilizar também para essa necessidade.

Essa é a mesma solução utilizada por vocês?

2 Respostas

Gedson_Silva

@AlexSlender se eu entendi bem você deve estar se referindo aos chamados viewModel.
A evolução do JPA tornando as entidades em POJO praticamente eliminou a necessidade de DTO’s, na minha humilde opinião, mas existem casos em que os viewModels (que até se parecem na essência com DTO’s) são úteis, importantes e em alguns casos, necessários.
Existem alguns componentes de determinados framewors e bibliotecas que necessitam fazer algum tipo de processamento padronizado e demandam um tipo especifico de objeto, geralmente porque este objeto extende ou implementa alguma coisa pra resolver o problema; outro caso que vejo muita utilidade é quando deseja-se muitos parametros podem ser passados, não tantos que justifique o envio do objeto todo e nem tão poucos que seja interessante mantê-los na assinatura do método, por exemplo uma entidade Pessoa com dezenas de atributos, dentre os quais muitos outros objetos com outros atributos. Uma pesquisa por nome talvez não seja suficiente, uma pesquisa por toda entidade talvez seja tráfego excessivo e desnecessário, daí cria-se um viewModel com os atributos que se deseja e faz utilização dele na tela.
Espero ter sido útil de alguma forma.

AlexSlender

Obrigado por responder Gedson_Silva, você foi pra uma abordagem mais conceitual, em termos de projeto. Eu resolvi o problema, utilizei tag <f:validateBean disable="true"> para ignorar a fase de validação para os atributos. Neste caso como a minha entidade era super simples, não queria ter que criar um DTO só pra isso, queria aproveitar a propria entidade para obter os valores digitados pelo usuário.

Criado 22 de março de 2016
Ultima resposta 28 de mar. de 2016
Respostas 2
Participantes 2