如何获取任何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

回到顶部