如何获取任何JPA实体的主键?
对于每个@Entity,我需要执行以下操作:
public <Entity> boolean insert(final Entity entity){ if (em.find(entity.getClass(), entity.getId()) == null) {
et.begin();
em.persist(entity);
et.commit();
return true;
}
return false;
}
如果该实体不存在,则持久保存该实体,并知道其是否存在。尽管我意识到这不是继承关系,但我尝试使用Entity来实现@Entity。我可以使用什么类来引用每个JPA实体?我可以只创建一个接口/抽象类MyEntities并让它们全部继承,但是这样吗?我希望更少的代码。另外,我希望能够提取每个实体的主键,就像我在.getId()中尝试的那样。
回答:
此功能已在JPA 2.0中添加。只需致电:
Object id = entityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity);
以上是 如何获取任何JPA实体的主键? 的全部内容, 来源链接: utcz.com/qa/403803.html