2010-10-07 74 views
3

假設我們有一個實體對象。有沒有辦法從中提取主鍵?從JPA 2.0中的實體對象中提取主鍵?

我想要做這樣的事情:

public static Object extractPrimaryKey(EntityManager em, Object obj) { 
    return em.giveMeThePrimaryKeyOfThisEntityObject(obj); 
} 

原因是獲得超脫實體的附件副本:

這可能嗎? (我用的EclipseLink 2.1)

回答

3

也許這將工作:

em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj); 
2

原因是獲得超脫實體的附件副本:

你爲什麼不只是使用EntityManager#merge(T) ??

MyEntity detached = ... 
MyEntity attached = em.merge(detached); 

這是什麼問題?

+0

合併將更新數據庫。我不想要這個。 – 2010-10-08 14:17:41

+0

@iimuhin啊是的,有道理:) – 2010-10-09 16:44:51

相關問題