Java 从JPA2.0中的实体对象提取主键?

Java 从JPA2.0中的实体对象提取主键?,java,orm,jpa,eclipselink,jpa-2.0,Java,Orm,Jpa,Eclipselink,Jpa 2.0,假设我们有一个实体对象。有没有办法从中提取主键 我想这样做: public static Object extractPrimaryKey(EntityManager em, Object obj) { return em.giveMeThePrimaryKeyOfThisEntityObject(obj); } 原因是为了获得分离实体的附加副本: public static Object attach(EntityManager em, Object obj) { retur

假设我们有一个实体对象。有没有办法从中提取主键

我想这样做:

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)

也许这会奏效:

em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(obj);
原因是为了获得分离实体的附加副本:

public static Object attach(EntityManager em, Object obj) {
    return em.find(obj.getClass(), extractPrimaryKey(em, obj));
}
你为什么不直接用


有什么问题吗?

@iimuhin啊,是的,有道理:)