[英]JPA get id of entity object
有誰知道我怎么能在休眠中做相同的事情:
session.getIdentifier(instance);
與JPA?
EntityManager有一個contains方法,但就是這樣!
我正在編寫一些代碼,它們充當實體和存儲在會話中的數據之間的轉換器(因此,而不是僅存儲類名並且存儲id的序列化對象)。
在JPA 2.0中,您可以編寫
em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(instance);
有沒有人知道我如何用JPA在hibernate(...)中做相同的操作?
JPA 1.0沒有等效的,所以如果你堅持使用JPA 1.0,你將不得不使用Hibernate的API:從EntityManager
獲取Session
並使用Session#getIdentitifier(Object)
。
例如,使用JBoss(是的, getDelegate()
不可移植 ):
org.hibernate.Session session = (Session)manager.getDelegate();
session.getIdentifier(myEntity);
如果您使用的是JPA 2.0,則按照axtavt的建議使用PersistenceUnitUtil#getIdentity(Object)
。 但這在JPA 1.0中不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.