簡體   English   中英

JPA獲取實體對象的id

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM