Como pegar a conexão usando JPA ou Hibernate

Eu passei por um problema que era usar a mesma conexão que eu usava no projeto para usar no meu relatório com o ireports.
Para resolver esse problema usei esse código.

public class ReportsRepository {

    private EntityManager entityManager;
    
    public ReportsRepository(EntityManager entityManager) {
        this.entityManager = entityManager;
    }
    
    public Connection getConnection() {
        try {
            EntityManagerImpl factory = (EntityManagerImpl) entityManager;
            SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) factory.getSession().getSessionFactory();
            return sessionFactoryImpl.getConnectionProvider().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

Share and Enjoy !

0Shares
0 0