viernes, 29 de enero de 2010

Show SQL from Hibernate Criteria

Sometimes you need to show the SQL generated by your Hibernate Criteria. I have found one way to get it easily,

public static void showSql(Criteria c){
if( log.isDebugEnabled()){
long init = System.currentTimeMillis();
CriteriaImpl critImpl = ((CriteriaImpl)c);

try{
SessionImpl s = (SessionImpl)critImpl.getSession();
SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory();
String[] implementors = factory.getImplementors( critImpl.getEntityOrClassName() );
CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]),
factory, critImpl, implementors[0], s.getEnabledFilters());
Field f = OuterJoinLoader.class.getDeclaredField("sql");
f.setAccessible(true);
String sql = (String)f.get(loader);
log.debug("SQL ("+(System.currentTimeMillis()-init) + "ms): " + sql );

}catch(Exception e){


}
}

}

miércoles, 13 de enero de 2010

BLOGUZZ-5187a2a34e

BLOGUZZ-5187a2a34e

Renovar mi portatil

Bueno, y va siendo hora de actualizar de portatil. Mi gran MBP del 2007 ya está pidiendo que lo renueve. Tengo mis dudas, porque llevo tiempo tras un mac mini para la tele, o un iMac para el salón.
Creo que un otro MBP es la primera opción, aunque igual es posible pasarme a un iMac.

os mantendré informado...