I am trying to save data to the database and are returning the following error:
attempt to create merge event with null entity
Bean looks like this:
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();
}
}
XHTML like this:
<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>
</h:form>
Client class:
@Entity
public class Cliente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String nome;
private String telefone;
private String cidade;
private String cpf;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Cliente other = (Cliente) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}