Igor Mukhin
Igor Mukhin

Reputation: 15398

Extract the primary key from a entity object in JPA 2.0?

Let's say we have an entity object. Is there a way to extract a primary key from it?

I want to do something like this:

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

Reason for that is to get an attached copy of detached entity:

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

Is it possible? (I am using EclipseLink 2.1)

Upvotes: 3

Views: 770

Answers (2)

Pascal Thivent
Pascal Thivent

Reputation: 570595

Reason for that is to get an attached copy of detached entity:

Why don't you just use EntityManager#merge(T)??

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

What's the problem with that?

Upvotes: 2

axtavt
axtavt

Reputation: 242786

Perhaps this will work:

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

Upvotes: 3

Related Questions