gpt4 book ai didi

java - 如何获取任何 JPA 实体的主键?

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:23 24 4
gpt4 key购买 nike

对于每个@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,尽管我意识到这不是继承关系。我可以使用哪个类来引用每个 JPA 实体?我可以只创建一个接口(interface)/抽象类 MyEntities 并让它们全部继承,但就是这样吗?我希望代码更少。此外,我希望能够提取每个实体的主键,就像我在 .getId() 中尝试的那样。

最佳答案

此功能是在 JPA 2.0 中添加的。只需调用:

Object id = entityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity);

关于java - 如何获取任何 JPA 实体的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com