package railo.runtime.orm.hibernate; import org.hibernate.Session; import org.hibernate.Transaction; import railo.runtime.orm.ORMTransaction; public class HibernateORMTransaction implements ORMTransaction { private Transaction trans; private Session session; private boolean doRollback; private boolean autoManage; public HibernateORMTransaction(Session session, boolean autoManage){ this.session=session; this.autoManage=autoManage; } @Override public void begin() { if(autoManage)session.flush(); trans=session.beginTransaction(); } @Override public void commit() { // do nothing } @Override public void rollback() { doRollback=true; } @Override public void end() { if(doRollback){ trans.rollback(); if(autoManage)session.clear(); } else{ trans.commit(); session.flush(); } } }