当前位置: 首页 > 面试题库 >

JPA获取实体对象的ID

尉迟子民
2023-03-14
问题内容

有谁知道我该如何在hibernate状态下做到这一点:

session.getIdentifier(instance);

使用JPA?

EntityManager有一个contains方法,但仅此而已!

我正在编写一些代码,充当实体和会话中存储的数据之间的转换器(因此,不是存储序列化的对象,而是仅存储类名和ID)。


问题答案:

有谁知道我可以用JPA在hibernate(…)中做到这一点?

JPA 1.0没有等效的功能,因此如果您坚持使用JPA
1.0,则必须使用Hibernate的API:SessionEntityManager和使用获取Session#getIdentitifier(Object)

例如,与JBoss(是的,getDelegate()是不可移植的):

org.hibernate.Session session = (Session)manager.getDelegate();
session.getIdentifier(myEntity);

如果您使用的是JPA
2.0,请PersistenceUnitUtil#getIdentity(Object)按照axtavt的建议使用。但这在JPA 1.0中不可用。



 类似资料:
  • 我将JPA与JSF datatable一起使用,并进行延迟加载。在这里,一辆车可以被许多用户拥有。因此,当我登录到该应用程序时,我希望登录的用户拥有的汽车(假设它是userId=1)。我有一个映射表“Cars\u User”,其中包含carId和userId列。我的实体就像我的汽车类 用户类 我在这个链接中找到了字符串集合列表的一个答案,但在我的例子中如何实现呢。我想在CriteriaAPI中获取

  • 我的数据库中有两个表: 如你所见,作者和书之间有一种关系:作者可以有很多书。在我的申请中,我想获取所有的作者,每个人都有他们的书籍收藏。现在我用代码实现了这个: 不幸的是,它需要对数据库进行许多查询。一个select用于获取作者,另外一个query用于为每个作者获取书籍。我试图连接表,但我不知道如何使用jooq正确解析结果。有什么想法吗?

  • 我从我的Spring项目中删除了Spring Roo,这是不必要的,而且在eclipse STS中构建花了很多时间。我执行了一个推入,我的实体对象现在包含了旧的Roo文件的源代码。 几乎没有什么变化,包括PersistentContext管理,这看起来很奇怪。事实上,我注意到,每次创建查询时,我都需要实例化实体类以获得EntityManager? 在我的实体类中,我有

  • 问题内容: 但是,首选解决方案(属性访问)在我的情况下不起作用(我缺少列异常-为什么?) 该模型如下所示:实体和。表含有列是的表,以便它是典型的关系。 现在的问题是,如果我取的实体,我需要有机会获得价值(亦称的实体),而不取实体。我怎样才能做到这一点? 我使用的映射如下所示: 我想做的是调用而无需从DB中额外获取实体。 根据我上面提到的答案,如果我将注释从字段移到getter(在实体上,我对吗?)

  • 问题内容: 对于每个@Entity,我需要执行以下操作: 如果该实体不存在,则持久保存该实体,并知道其是否存在。尽管我意识到这不是继承关系,但我尝试使用Entity来实现@Entity。我可以使用什么类来引用每个JPA实体?我可以只创建一个接口/抽象类MyEntities并让它们全部继承,但是这样吗?我希望更少的代码。另外,我希望能够提取每个实体的主键,就像我在.getId()中尝试的那样。 问题

  • 在我的示例中,如何使用JPA CriteriaBuilder(如hibernate Criteria)这样的标准进行选择? 和