JPA获取实体对象的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中不可用。

解决方法

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

session.getIdentifier(instance);

使用JPA?

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

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

相关文章

猜你在找的编程问答相关文章

怎样才能让 Git“忘记”一个被跟踪但现在在 .gitignore 中的文件?
Python 中的metaclasses是什么?
如何在 Linux 上查找包含特定文本的所有文件?
如何从异步调用返回响应
如何在一个表达式中合并两个字典(取字典的并集)?
HTTP 中的 POST 和 PUT 有什么区别?
使用 Git 将最近的提交移动到新分支
在 JavaScript 比较中应该使用哪个等于运算符 (== vs ===)?