[英]If JPA is really only a specification, then how can we do?
在以下每個人的問題中
告訴我們JPA是規范,這是沒有Eclipselink或Hibernate的抽象
JPA javax.persistence.sth對嗎?
此外,我們可以使用諸如
javax.persistence.EntityManager.persiste javax.persistence.EntityManager.delete / remove
編輯
eclipselink和hibernate是否將自己的代碼放入這些包,這些類中???
JPA是一個規范,許多實現者提供遵循該規范的實現。
因此,如果按原樣使用JPA,則可以從一個或多個實現者中進行選擇,並且它應該“即插即用”。 換句話說,您不必更改代碼,因為實現將執行規范所承諾的工作。
---關於JPA和Hibernate之間的區別---
JPA是一個規范,但是Hibernate是一個實現。 如果您針對JPA編寫代碼,則可以輕松地在JPA兼容的實現之間進行更改; 但是,如果您針對Hibernate進行編寫,則要進行更改,實際上需要重寫數據庫訪問代碼。
請注意,Hibernate還提供了一些JPA兼容性,如果您只使用Hibernate的JPA兼容部分,則您實際上是使用Hibernate提供的實現針對JPA編寫的。
有一個進行JPA開發的秘訣,可以很好地防止編寫非JPA(特定於實現)的代碼。
JPA是Java持久性API,由JCP(Java社區流程)作為JSR(Java規范請求)發布。
這是一種規范; 換句話說,例如接口,不包含任何實現。
每個對此規范感興趣的供應商(實施者)都需要按照規范文檔中的說明進行實施。
這是示例JPA 2.0規范
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.