I don't think the error is ocurring here. It's probably ocurring when you access the returned instance of TStructureSocieteGestion from the query. It is being proxied and you are probably outside the scope of a session.
try this
Code:
public Object doInHibernate(Session session) throws HibernateException
{
Criteria criteria = session.createCriteria(TStructureSocieteGestion.class);
//criteria.setFetchMode("structure", FetchMode.LAZY);
criteria.add(Expression.eq("structure.codeStructure", codeStructure));
criteria.add(Expression.eq("structure.codeStructure", codeStructure));
criteria.add(Expression.le("dateDebutValidite", now));
criteria.add(Expression.ge("dateFinValidite", now));
Object result = criteria.uniqueResult();
Hibernate.initialize(result);
return result;
}