2010-10-07 21 views
3

Disons que nous avons un objet entité. Existe-t-il un moyen d'extraire une clé primaire de celui-ci?Extraire la clé primaire d'un objet entité dans JPA 2.0?

Je veux faire quelque chose comme ceci:

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

raison est d'obtenir une copie ci-jointe de l'entité détachée:

Est-il possible? (J'utilise EclipseLink 2.1)

Répondre

3

Peut-être que ceci fonctionne:

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

Raison de c'est d'obtenir une copie ci-jointe de l'entité détachée:

Pourquoi trouvez-vous pas seulement utiliser EntityManager#merge(T) ??

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

Quel est le problème avec cela?

+0

La fusion mettra à jour la base de données. Je ne le veux pas. –

+0

@iimuhin Ah oui, ça a du sens :) –