e ai galera beleza estou começando agora a estudar JSF e Hibernate, estou estudando por conta própria.
estou com uma telinha simples de cadastro de usuário,
consigo pegar o valor, jogar dentro das variáveis… e passar para dentro do método que persiste,
mas por algum motivo está parando no:
transaction = entityManager.getTransaction();
do GenericDao.java…
não sei se pulei algum passo…
segue algumas partes do meu código:
usuario.xhtml
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Cadastro de Usuário</title>
</h:head>
<h:body>
<h:form>
<h:messages/>
<h:panelGrid>
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" label="Nome" value="#{usuarios.nome}" required="true"/>
<h:outputLabel value="Sobrenome:" for="sobreNome" />
<h:inputText id="sobreNome" label="Sobrenome" value="#{usuarios.sobreNome}" required="true"/>
<h:outputLabel value="Login:" for="login" />
<h:inputText id="login" label="Login" value="#{usuarios.login}" required="true"/>
<h:outputLabel value="Password:" for="password" />
<h:inputSecret id="password" label="Password" value="#{usuarios.password}" required="true"/>
<h:outputLabel value="Confirmar Password:" for="confirmaPassword" />
<h:inputSecret id="confirmaPassword" label="Confirmar Password" value="#{usuarios.confirmaPassword}" required="true"/>
<h:commandButton action="#{usuarios.testeGravar}" value="Gravar"/>
</h:panelGrid>
</h:form>
</h:body>
</html>
Usuarios.java
@ManagedBean(name="usuarios")
@RequestScoped
@Entity
@Table(name="usuarios", schema="GUSTAVOAMARO")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Usuarios extends PessoaGenerica{
@Column (name="login")
private String login;
@Column (name="password")
private String password;
@Transient
private String confirmaPassword;
//geters and setters
public String testeGravar(){
UsuariosDAO testeDao = new UsuariosDAO();
Usuarios testeUser = new Usuarios();
FacesContext context = FacesContext.getCurrentInstance();
try{
if (!getConfirmaPassword().equals(getPassword())){
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "As senhas são diferentes",""));
return "usuario";
}
else {
testeUser.setNome(getNome());
testeUser.setSobreNome(getSobreNome());
testeUser.setLogin(getLogin());
testeUser.setPassword(getPassword());
testeDao.insert(testeUser);
return "sucesso";
}
}catch (Exception e) {
return "usuario";
}
}
}
GenericDao.java
public class GenericDao extends AbstractDao {
private static final long serialVersionUID = 1L;
protected transient Logger logger = Logger.getLogger(GenericDao.class);
@PersistenceContext
protected EntityManager entityManager = null;
public GenericDao() {
super();
try {
entityManager = GenericDao.getEntityManager();
} catch (DAOException e) {
logger.error(e.getCause());
}
}
public <T> void insert(T entity) throws DAOException {
EntityTransaction transaction = null;
try {
transaction = entityManager.getTransaction();
transaction.begin();
entityManager.flush();
entityManager.persist(entity);
AppLog.infoLog("Registro Inserido com sucesso.");
transaction.commit();
} catch (Exception e) {
AppLog.erroLog("Falha ao inserir o registro na tabela.");
logger.error(e.getMessage());
transaction.rollback();
throw new DAOException(e);
}
}
}
espero que alguém tenha saco pra dar uma olhada… pois ficou muita coisa pra olhar neh…
obrigado desde já… abraços