Reputation: 15398
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
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
Reputation: 242786
Perhaps this will work:
em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj);
Upvotes: 3