Olá a todos.
Fiz uma view para incluir o registro em uma tabela chamada Usuário. Todas as outras views estão funcionando, apenas essa que não. E eu estou usando a mesma codificação.
Já olhei método por método aqui e não consegui encontrar nada de errado.
Alguém saberia me dizer onde estou errado??
Só um detalhe, se eu insiro o registro direto no banco a view exibe o registro na datatable e eu também consigo excluir.
Só alterar e incluir que não consigo.
Muito obrigado desde já!!
Usuario.java
package br.com.unip.menudroidweb.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
private static final long serialVersionUID = 8179739667472414271L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int idUsuario;
@Column(nullable=false, length=50)
private String abreviacao;
@Temporal( TemporalType.TIMESTAMP)
private Date dataNascimento;
@Column(nullable=false, length=100)
private String nome;
@Column(nullable=false, length=6)
private String senha;
public Usuario() {
}
public int getIdUsuario() {
return this.idUsuario;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
public String getAbreviacao() {
return this.abreviacao;
}
public void setAbreviacao(String abreviacao) {
this.abreviacao = abreviacao;
}
public Date getDataNascimento() {
return this.dataNascimento;
}
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSenha() {
return this.senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
UsuarioFacade.java
package br.com.unip.menudroidweb.facade;
import java.io.Serializable;
import java.util.List;
import br.com.unip.menudroidweb.model.Usuario;
import br.com.unip.menudroidweb.dao.UsuarioDAO;
public class UsuarioFacade implements Serializable {
private static final long serialVersionUID = -7914066672489151023L;
private UsuarioDAO usuarioDAO = new UsuarioDAO();
public void createUsuario(Usuario usuario) {
usuarioDAO.beginTransaction();
usuarioDAO.save(usuario);
usuarioDAO.commitAndCloseTransaction();
}
public void updateUsuario(Usuario usuario) {
usuarioDAO.beginTransaction();
Usuario persistedUsuario = usuarioDAO.find(usuario.getIdUsuario());
persistedUsuario.setNome(usuario.getNome());
persistedUsuario.setAbreviacao(usuario.getAbreviacao());
persistedUsuario.setSenha(usuario.getSenha());
persistedUsuario.setDataNascimento(usuario.getDataNascimento());
usuarioDAO.update(persistedUsuario);
usuarioDAO.commitAndCloseTransaction();
}
public Usuario findUsuario(int usuarioId) {
usuarioDAO.beginTransaction();
Usuario usuario = usuarioDAO.find(usuarioId);
usuarioDAO.closeTransaction();
return usuario;
}
public List<Usuario> listAll() {
usuarioDAO.beginTransaction();
List<Usuario> usuario = usuarioDAO.findAll();
usuarioDAO.closeTransaction();
return usuario;
}
public void deleteUsuario(Usuario usuario) {
usuarioDAO.beginTransaction();
Usuario persistedUsuario = usuarioDAO.findReferenceOnly(usuario.getIdUsuario());
usuarioDAO.delete(persistedUsuario);
usuarioDAO.commitAndCloseTransaction();
}
}
package br.com.unip.menudroidweb.bean;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.unip.menudroidweb.facade.UsuarioFacade;
import br.com.unip.menudroidweb.model.Usuario;
@ViewScoped
@ManagedBean (name = "usuarioBean")
public class UsuarioBean extends AbstractBean implements Serializable {
private static final long serialVersionUID = 2489049544264858442L;
private Usuario usuario;
private List<Usuario> usuarioLista;
private UsuarioFacade usuarioFacade;
public UsuarioFacade getUsuarioFacade() {
if (usuarioFacade == null) {
usuarioFacade = new UsuarioFacade();
}
return usuarioFacade;
}
public Usuario getUsuario() {
if (usuario == null) {
usuario = new Usuario();
}
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public void createUsuario() {
try {
getUsuarioFacade().createUsuario(usuario);
closeDialog();
displayInfoMessageToUser("Registro criado com sucesso!");
loadUsuario();
resetUsuario();
} catch (Exception e) {
keepDialogOpen();
displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
e.printStackTrace();
}
}
public void updateUsuario() {
try {
getUsuarioFacade().updateUsuario(usuario);
closeDialog();
displayInfoMessageToUser("Registro alterado com sucesso!");
loadUsuario();
resetUsuario();
} catch (Exception e) {
keepDialogOpen();
displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
e.printStackTrace();
}
}
public void deleteUsuario() {
try {
getUsuarioFacade().deleteUsuario(usuario);
closeDialog();
displayInfoMessageToUser("Registro excluído com sucesso!");
loadUsuario();
resetUsuario();
} catch (Exception e) {
keepDialogOpen();
displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
e.printStackTrace();
}
}
public List<Usuario> getAllUsuario() {
if (usuarioLista == null) {
loadUsuario();
}
return usuarioLista;
}
private void loadUsuario() {
usuarioLista = getUsuarioFacade().listAll();
}
public void resetUsuario() {
usuario = new Usuario();
}
}
incluirUsuario.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<p:dialog widgetVar="incluirUsuario" id="usuarioCreateDialogId"
height="350" width="500" modal="true" closable="true"
draggable="false" resizable="false">
<h:form id="usuarioCreateDialogForm" prependId="false">
<h:panelGrid columns="2">
<h:outputText value="* Nome: " />
<h:inputText value="#{usuarioBean.usuario.nome}"
required="true" label="Nome">
</h:inputText>
<h:outputText value="* Abreviação: " />
<h:inputText value="#{usuarioBean.usuario.abreviacao}" required="true"
label="Abreviação">
</h:inputText>
<h:outputText value="* Senha: " />
<h:inputText value="#{usuarioBean.usuario.senha}"
required="false" label="Senha">
</h:inputText>
<h:outputText value="Data Nascimento: " />
<h:inputText value="#{usuarioBean.usuario.dataNascimento}" required="false"
label="Data Nascimento">
</h:inputText>
<p:commandButton value="Gravar" icon="ui-icon-plus"
action="#{usuarioBean.createUsuario()}"
update=":usuarioForm:usuarioTable"
oncomplete="incluirUsuario.hide();" />
<p:commandButton value="Cancelar" icon="ui-icon-cancel"
actionListener="#{usuarioBean.resetUsuario()}"
onclick="incluirUsuario.hide();" type="button" />
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
</html>
