4
是否可以獲取EntityManager對象的關聯持久性單元名稱?例如,你有如何從EntityManager獲取持久性單元名稱
@PersistenceContext(unitName="fooPU")
private EntityManager em;
是否有可能得到的名字fooPU
從em
?這樣做的動機是我想進行一個小測試來驗證通過@Inject
注入的em與正確的持久性單元相關聯。
是否可以獲取EntityManager對象的關聯持久性單元名稱?例如,你有如何從EntityManager獲取持久性單元名稱
@PersistenceContext(unitName="fooPU")
private EntityManager em;
是否有可能得到的名字fooPU
從em
?這樣做的動機是我想進行一個小測試來驗證通過@Inject
注入的em與正確的持久性單元相關聯。
的持久性單元名稱是屬性鍵「hibernate.ejb.persistenceUnitName」下地圖
String puName = em.getEntityManagerFactory().getProperties().get("hibernate.ejb.persistenceUnitName").toString()
如果JPA提供程序不像Hibernate那樣處於休眠狀態,該怎麼辦? – JBT
從我的頭頂時,EMFactory('entityManager.getEntityManagerFactory()的屬性。GetProperties中()')可能包含PU名稱 – kostja
@kostja:謝謝。事實上,除了我沒有'getEntityManagerFactory()',即我使用'entityManager.getProperties()',它給出了與你相同的屬性映射外,這是我當前的解決方法。但該地圖沒有獨立的PU名稱密鑰。不過,它的確有PU名稱嵌入在其他一些鍵中。你可以通過一些黑客來獲得PU的名字,但對我來說這似乎並不乾淨。 – JBT
是的,乾淨將是不同的:)不幸的是,我不知道一種不同的方式。 – kostja