I am a newbie to hibernate. Please let me know what is wrong in the below code ?
f1()
{
try {
s = HibernateUtils.getSessionFactory().getCurrentSession();
tx = s.beginTransaction();
// do some task
tx.commit();
} catch(Exception e) {
tx.rollback();
throw e;
}
}
f2()
{
try {
s = HibernateUtils.getSessionFactory().getCurrentSession();
tx = s.beginTransaction();
f1();
tx.commit();
} catch(Exception e) {
tx.rollback();
}
}
The begin transaction statement in f1()
throws exception. Thanks in advance.
You can’t have more then one transaction (not session) active at same time, your method is already under transaction and you don’t need to create a new one; remove s.beginTransaction();
OR can pass same transaction, or else create a new one.
Concept here is - getCurrentSession()
return same and you are calling beginTransaction()
twice.