>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Conexão JSF + Hibernate com MySQL


Olá,

Estou fazendo um projeto com JSF e Hibernate. Criei um index.xhtml que salva um novo usuário no banco.

Botao Cadastrar:


O projeto executa sem nenhum erro. A tabela usuário também é criada no banco, mas quando faço um "select" pra ver os valores da tabela, os campos estão como NULL.

O projeto cria a estrutura no banco, mas não salva os valores.

OBS:

No arquivo persistence.xml,


A estrutura foi criada, mas os campos ficaram como NULL

Depois,



Nada aconteceu, os campos continuaram NULL

Meu projeto tem um Pojo usuario com getters e setters e as annotaions do hibernate.

@Entity
@Table(name="usuarios")

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private int ID;

@Column(name="nome")
private String nome;

Alguém sabe qual pode ser o problema?



8 Respostas


Alexandre,

Mas alguma operação funciona? INSERT? Delete? Ou só o select que não?




Oi Rafael,

As outras operações INSERT, DELETE, SELECT, UPDATE estão funcionando corretamente quando chamadas em uma Query direto no banco.

Testei o DELETE através da aplicação, mas também não funcionou.




Opa

Me mostre o seu DAO




Ola,

Classe ConnectDB:


private static EntityManagerFactory emf = null;

public EntityManagerFactory getEntityManager(){
if (emf == null){
emf = Persistence.createEntityManagerFactory("sistema");
}

return emf;
}

public ConnectDB() {

}




Ola,

Classe ConnectDB:


private static EntityManagerFactory emf = null;

public EntityManagerFactory getEntityManager(){
if (emf == null){
emf = Persistence.createEntityManagerFactory("sistema");
}

return emf;
}

public ConnectDB() {

}




Insert da classe UsuarioDAO:


public void insert(Usuario obj) {

EntityManager em = getEntityManager().createEntityManager();

try {
em.getTransaction().begin();
em.persist(obj);
em.getTransaction().commit();

} catch (Exception e) {
em.getTransaction().rollback();
} finally {
em.clear();
em.close();
}

}




Alexandre

Parece estar tudo certo.

Faça o seguinte, no catch do insert, coloque um println com alguma mensagem. Então faça o teste e tente inserir, e veja se mostra algum erro.




Sim, estava caindo no catch do insert. Parece que o objeto "THIS" que estava mandando não era aceito.

Criei um atributo do tipo do meu pojo e funcionou.