O que há de errado no código que não da erro, não lança exceção e os dados não são inseridos?
[code] public void incluir(T arg0) throws Exception, SQLException{
Session session = HibernateUtility.getSession();
Transaction transaction = HibernateUtility.getTransaction();
try {
session.beginTransaction();
session.saveOrUpdate(arg0);
session.flush();
transaction.commit();
} catch (HibernateException e) {
System.out.println("Erro na inserção :" + e.getMessage());
throw e;
}
}[/code]
Você debugou para ver se está passando aí?
Sim finaliza o método direitinho como se tivesse inserido. “sem erros”.
Você não deveria fazer commit pela session? eu não entendo muito de hiberante puro, mas pelo menos imagino que seja assim.
fiz tanto pela session quanto pela transaction mas não colocou os dados dentro banco.
Esta HibernateUtility é uma classe que você criou? Tenho a impressão de que você está usando transações diferentes. Quando você chama o método beginTransaction ele retorna uma transação. Tenta assim:
Session session = HibernateUtility.getSession();
Transaction tx;
try {
tx = session.beginTransaction();
session.saveOrUpdate(arg0);
session.flush();
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
System.out.println("Erro na inserção :" + e.getMessage());
throw e;
} finally {
session.close(); //se vc quiser fechar aqui...
}
[quote=wagnerfrancisco]Esta HibernateUtility é uma classe que você criou? Tenho a impressão de que você está usando transações diferentes. Quando você chama o método beginTransaction ele retorna uma transação. Tenta assim:
Session session = HibernateUtility.getSession();
Transaction tx;
try {
tx = session.beginTransaction();
session.saveOrUpdate(arg0);
session.flush();
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
System.out.println("Erro na inserção :" + e.getMessage());
throw e;
} finally {
session.close(); //se vc quiser fechar aqui...
}
[/quote]É oq eu imaginei também, mas não sabia aplicar ao Hibernate. :lol: :lol: :lol:
Um dia vou aprender mexer nesse trem.
Verdade, veja se a Transaction é a mesma
Pow Hebert, manja de JPA, mas não de hibernate?
É bem simples, aliás, muito mais que JPA, no meu entender…
[quote=drsmachado]Pow Hebert, manja de JPA, mas não de hibernate?
É bem simples, aliás, muito mais que JPA, no meu entender…[/quote]A parte de transação, não mesmo.
Sempre me atinei ao JPA puro, pois foi o que sempre utilizei com o JBoss. =/
Mas prometo um dia estudar Hibernate puro e te deixar orgulhoso! O.o
MAhuahhahuaa
[quote=Hebert Coelho][quote=drsmachado]Pow Hebert, manja de JPA, mas não de hibernate?
É bem simples, aliás, muito mais que JPA, no meu entender…[/quote]A parte de transação, não mesmo.
Sempre me atinei ao JPA puro, pois foi o que sempre utilizei com o JBoss. =/
Mas prometo um dia estudar Hibernate puro e te deixar orgulhoso! O.o
MAhuahhahuaa[/quote]
Que nada camarada, um dia você vai dominar o mundo!!!
Houve realmente confusão na hora de abrir a transação e da o commit, mas tu do se deu pois já fazem mais de 2 anos q eu não utilizava hibernate nem JPA ai não prestei a tenção ao detalhe.
Camarada, isso é normal. todo mundo se confunde…
[quote=Hebert Coelho][quote=wagnerfrancisco]Esta HibernateUtility é uma classe que você criou? Tenho a impressão de que você está usando transações diferentes. Quando você chama o método beginTransaction ele retorna uma transação. Tenta assim:
Session session = HibernateUtility.getSession();
Transaction tx;
try {
tx = session.beginTransaction();
session.saveOrUpdate(arg0);
session.flush();
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
System.out.println("Erro na inserção :" + e.getMessage());
throw e;
} finally {
session.close(); //se vc quiser fechar aqui...
}
[/quote]É oq eu imaginei também, mas não sabia aplicar ao Hibernate. :lol: :lol: :lol:
Um dia vou aprender mexer nesse trem.[/quote]
E eu trabalhei pouquíssimas vezes com JPA. Sempre uso Hibernate direto. 