You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Philippe Guillard <pg...@citycita.net> on 2005/06/21 12:50:03 UTC
Persistance transaction in XSP or java, best coding?
Hi all,
I'd like to write better my XSP code for persistence access.
Actually i use Hibernate(could be OJB) directly accessing Cocoon
database connection pool.
Question1 :
Is the code below a good practice? It is a lot of code repeated for each
XSP. I didn't find any way to include this code in my XSP page like i
would include text. I suppose i need to create a logicsheet for that?
Include is for another purpose...
Note : i use XSP instead of flow when i have many collections to
manipulate and show, otherwhise i use flow than deals only with
PersistenceFactory, and put the session in the DAOs. Session is inside
the DAOs, easier
Question2:
I wonder about making my DAO (they only manipulate the beans) as static
functions or instantiate them each time.
Regards
Phil
____________________________________________________________________________________________________
PersistenceFactory pf = null;
Sessiion hs = null;
Transaction tx = null;
try {
pf = (PersistenceFactory)manager.lookup(PersistenceFactory.ROLE);
hs = pf.createSession();
try {
tx = hs.beginTransaction();
// HERE I USE MY DAOs and show things to user
tx.commit();
} catch (HibernateException he) {
if (tx!=null) tx.rollback();
getLogger().error("Hibernate exception");
} catch (RuntimeException e) {
if (tx!=null) tx.rollback();
getLogger().error("Runtime exception");
}finally {
try{
hs.close().close();
//hs.close(); //This is not closing the seesion and uses all
my pools
} catch (SQLException sqle) { //needs to be handled
getLogger().error("SQLException",sqle);
}
}
} catch (ComponentException cme) {//lookup needs to be handled
getLogger().error("Could not look up the PersistenceManager",
cme);
} finally {
manager.release((Component)pf);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org