Editando Utilizando Método GET

3 respostas
Gileadesanto

Boa noite,

meu primeiro projeto jsf + jpa + bootstrap, bem eu fiz um page para editar pessoa física utilizando método get, mas logo depois que chamo a função merge, a mesma persiste corretamente mas sempre apresentava nullpointerexception quando acionava o conversor de pessoa física. conseguir resolver isso mas agora apresenta outro problema, logo após o merge que persiste a alteração retorna para a page de edição mas caso tente inserir gera mensagem de salvo com sucesso mas quando verifico o bando não há nada inserido mas é como se tivesse pois o id da próxima inserção pula um contando com o id que não inseriu. Aguardo ajuda de vocês
Pessoa.java (2.0 KB)
PessoaFisica.java (1.7 KB)
PessoaFisicaBean.java (2.7 KB)
PessoaConverter.java (1.5 KB)
pessoaFisicaEditar.xhtml (4.3 KB)
PessoaFisicaRepository.java (1.6 KB)
PessoaFisicaService.java (2.1 KB)

3 Respostas

fredericomaia10

Não olhei todos os arquivos, mas em algum local vc está gerenciando a transação? No Repository não vi isso e nem no Service. Pro JPA funcionar você precisa iniciar uma transação antes de persistir ou remover seus objetos. Exemplo:

public void insertRepository(PessoaFisica pessoaFisica) { entityManager.getTransaction().begin(); entityManager.persist(pessoaFisica); entityManager.getTransaction().commit(); }

Gileadesanto

oi eu utilizo open session in view, assim eu consigo pegar a entitymanager,abrir e fechar tudo através da classe FilterTool, com apenas uma EntityManager entityManager = (EntityManager) FacesTool.getRequestAttribute(“session”);
FilterTool.java (1.3 KB)

Gileadesanto

Bom dia.

Gente conseguir solucionar. após editar um objeto o sistema retornava para mesma xhtml, assim eu poderia cadastrar um novo objeto, mas quando tentava persistir dava rollback pois a Pessoa.class possui um atributo chamado datacadastro que é setada por meio de actionListener e como esse atributo possui um anotação do jpa @Column(name = “data_cadastro”, nullable = false) como no xhtml de edição não possui actionListener somente no xhtml de cadastro minha classe FilterTool trabalhava dando um rollback. Por fim a solução inicial foi apenas chamar meu
actionListener="#{PessoaFisicaBean.actionListenerGetDataRegister}", agora irei fazer um regra de negocio caso objeto já possua um dataCadastro minha actionListenerGetDataRegister não retorne um novo valor. Muito obg @fredericomaia10.

Criado 31 de março de 2016
Ultima resposta 31 de mar. de 2016
Respostas 3
Participantes 2