Извлечь первичный ключ из объекта сущности в JPA 2.0? - PullRequest
3 голосов
/ 07 октября 2010

Допустим, у нас есть объект сущности.Есть ли способ извлечь из него первичный ключ?

Я хочу сделать что-то вроде этого:

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

Причина этого заключается в том, чтобы получить прикрепленную копию отсоединенного объекта:

public static Object attach(EntityManager em, Object obj) {
    return em.find(obj.getClass(), extractPrimaryKey(em, obj));
}

Возможно ли это?(Я использую EclipseLink 2.1)

Ответы [ 2 ]

3 голосов
/ 07 октября 2010

Возможно, это будет работать:

em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj);
2 голосов
/ 07 октября 2010

Причина этого заключается в том, чтобы получить прикрепленную копию отсоединенного объекта:

Почему бы вам просто не использовать EntityManager#merge(T) ??

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

В чем проблема?

...