How to retrieve the datasource used by a persistence unit programmatically

后端 未结 10 1549
旧时难觅i
旧时难觅i 2020-12-07 23:05

...without actually reading and parsing the persistence.xml

I can retrieve the name of the persistence unit of an EntityManager using the p

10条回答
  •  心在旅途
    2020-12-07 23:53

    Try this :

    Session s = (Session) getEntityManager().getDelegate();
    org.hibernate.SessionFactory sessionFactory=s.getSessionFactory();
    ConnectionProvider cp=((SessionFactoryImpl)sessionFactory).getConnectionProvider();Connection connection=cp.getConnection();
    DatabaseMetaData dbmetadata= connection.getMetaData();
    String dtsource=dbmetadata.getUserName();
    

提交回复
热议问题