Pular para o conteúdo

erro ao tentar salvar dados no bando de dados

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. erro ao tentar salvar dados no bando de dados

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>

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

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

acabei apagando por engano

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

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

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>

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder