Il y a une autre option, avec encore beaucoup de distributions concernées, mais au moins il n'a pas besoin de réflexion, qui va vous redonner le moment de la compilation, la vérification:
public Connection getConnection(final EntityManager em) {
HibernateEntityManager hem = (HibernateEntityManager) em;
SessionImplementor sim = (SessionImplementor) hem.getSession();
return sim.connection();
}
Vous pouvez bien sûr faire que même les "plus joli" avec un peu d' instanceof
des contrôles, mais la version ci-dessus fonctionne pour moi.