erro ao tentar salvar dados no bando de dados

1. erro ao tentar salvar dados no bando de dados

melque oliveira santana
melquesantana

(usa Outra)

Enviado em 07/11/2017 - 18:13h

boa tarde,estou tentado salvar dados no banco de dado e está dando erro "attempt to create merge event with null entity"
o bean está assim:
public void SalvarCliente(){
try {

ClienteDao clienteDao = new ClienteDao();

clienteDao.salvarCliente(cliente);
cliente = new Cliente();
System.out.println("Cliente salvo com sucesso.");
Messages.addGlobalInfo("cliente salvo com sucesso!");

} catch (RuntimeException erro) {
// mensagem de erro para o usuario
Messages.addGlobalError("ocorreu um erro ao tentar salvar o cliente");
erro.printStackTrace();
}
}


o xhtml assim :
<h:form id="formCadastro">
<p:panel header="Cadastro" >
<p:panelGrid columns="2" >


<p:outputLabel value="Nome:" />
<p:inputText value="#{clienteBean.cliente.nome}" />

<p:outputLabel value="Telefone:" />
<p:inputText value="#{clienteBean.cliente.telefone}" />

<p:outputLabel value="CPF:" />
<p:inputText value="#{clienteBean.cliente.cpf}" />

<p:outputLabel value="Cidade:" />
<p:inputText value="#{clienteBean.cliente.cidade}" />



<p:commandButton value="Salvar" action="#{clienteBean.SalvarCliente}" process="@this" />

</p:panelGrid>

</p:panel>


  


2. Re: erro ao tentar salvar dados no bando de dados

melque oliveira santana
melquesantana

(usa Outra)

Enviado em 07/11/2017 - 18:14h

acabei apagando por engano


3. Re: erro ao tentar salvar dados no bando de dados

Leandro Silva
LSSilva

(usa Outra)

Enviado em 08/11/2017 - 08:29h

melquesantana escreveu:

boa tarde,estou tentado salvar dados no banco de dado e está dando erro "attempt to create merge event with null entity"
o bean está assim:
public void SalvarCliente(){
try {

ClienteDao clienteDao = new ClienteDao();

clienteDao.salvarCliente(cliente);
cliente = new Cliente();
System.out.println("Cliente salvo com sucesso.");
Messages.addGlobalInfo("cliente salvo com sucesso!");

} catch (RuntimeException erro) {
// mensagem de erro para o usuario
Messages.addGlobalError("ocorreu um erro ao tentar salvar o cliente");
erro.printStackTrace();
}
}


o xhtml assim :
<h:form id="formCadastro">
<p:panel header="Cadastro" >
<p:panelGrid columns="2" >


<p:outputLabel value="Nome:" />
<p:inputText value="#{clienteBean.cliente.nome}" />

<p:outputLabel value="Telefone:" />
<p:inputText value="#{clienteBean.cliente.telefone}" />

<p:outputLabel value="CPF:" />
<p:inputText value="#{clienteBean.cliente.cpf}" />

<p:outputLabel value="Cidade:" />
<p:inputText value="#{clienteBean.cliente.cidade}" />



<p:commandButton value="Salvar" action="#{clienteBean.SalvarCliente}" process="@this" />

</p:panelGrid>

</p:panel>


Então, como eu havia tentado explicar...

Você colocou assim:
try {

ClienteDao clienteDao = new ClienteDao();

clienteDao.salvarCliente(cliente);
cliente = new Cliente();
System.out.println("Cliente salvo com sucesso.");
Messages.addGlobalInfo("cliente salvo com sucesso!");

} catch (RuntimeException erro) {
// mensagem de erro para o usuario
Messages.addGlobalError("ocorreu um erro ao tentar salvar o cliente");
erro.printStackTrace();
}
}

Eu colocaria (pra início):

try {

ClienteDao clienteDao = new ClienteDao();
Cliente cliente = new Cliente();
//Terá que preencher os atributos do cliente
//cliente.nome="cliente sem nome por enquanto";
//cliente.idade=10;
//depois, se estiver correto em sua dao e o método retornar um valor boolean
//Pode fazer da seguinte forma:
if(clienteDao.salvarCliente(cliente)) {
System.out.println("Cliente salvo com sucesso.");
Messages.addGlobalInfo("cliente salvo com sucesso!");
}else {
System.out.println("Erro ao salvar cliente.");
}
} catch (RuntimeException erro) {
// mensagem de erro para o usuario
Messages.addGlobalError("Ocorreu um erro de runtime no meu software.");
erro.printStackTrace();
}
}



4. Re: erro ao tentar salvar dados no bando de dados

melque oliveira santana
melquesantana

(usa Outra)

Enviado em 08/11/2017 - 11:53h

LSSilva ,o atributos já serão colocados na tela .xhtml
o que quer o método clienteDao.salvarCliente(cliente); deveria fazer , era pegar os dados digitado pelo usuário e salva-los
acredito que o problema seja o meu xhtml, fiz um outro com layout com oncomplete="PF('dialogo').show();" e widgetVar="dialogo" e funcionou normalmente, porem quero da primeira forma, pois o layout ficou mais agradável .
vou mostrar o arquivo.xhtml que funciona, porem não gostei do formato :

<h:form id="formListagem">
<p:panel >

<f:facet name="footer">
<p:commandButton value="Cadastrar cliente" title="novo Cliente" oncomplete="PF('dialogo').show();"
actionListener="#{clienteBean.novo}"
update=":mensagem :formCadastro:painel" >
<f:actionListener type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
</p:commandButton>

</f:facet>

</p:panel>
</h:form>

<p:dialog header="Cliente - Cadastro" widgetVar="dialogo"
draggable="false" resizable="false" modal="true" closable="false">
<h:form id="formCadastro">
<div class="ui-fluid" >
<p:panelGrid id="painel" columns="2" layout="grid">

<p:outputLabel value="Nome:" />
<p:inputText value="#{clienteBean.cliente.nome}" />


<p:outputLabel value="Telefone:" />
<p:inputText value="#{clienteBean.cliente.telefone}" />

<p:outputLabel value="CPF:" />
<p:inputText value="#{clienteBean.cliente.cpf}" />

<p:outputLabel value="Cidade:" />
<p:inputText value="#{clienteBean.cliente.cidade}" />

</p:panelGrid>
</div>
<h:panelGrid columns="2">
<p:commandButton value="Salvar" actionListener="#{clienteBean.SalvarCliente}"
update=":mensagem :formCadastro:painel :formListagem"/>
<p:commandButton value="Fechar" oncomplete="PF('dialogo').hide();" />
</h:panelGrid>
</h:form>







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts