簡體   English   中英

為什么Hibernate 5.2支持java.time.Instant,而JPA 2不支持?

[英]Why java.time.Instant is supported in Hibernate 5.2 but not in JPA 2?

到目前為止,我已經了解到JPA是一個規范,而Hibernate是基於該規范的ORM工具,我們可以使用JPA的不同實現。 但是我不明白JPA 2怎么可能不支持java.time.Instant,但是Hibernate 5.2x支持它。

我已經讀過這個問題, 為什么-jpa-does-not-support-java-time-instant,但是它沒有正確的答案,也沒有談論冬眠如何能夠為Instant作為JPA特定實現提供支持。

JPA只是一個規范-它是提供通用API的一組接口。 它描述了對關系數據庫的訪問,以幫助開發人員管理多個dbms供應商。 JPA有多種實現,參考是在Eclipse Public License下開發的EclipseLink。 換句話說,這是一個標准,例如SQL-92或SQL:2006。 聲稱支持給定標准的數據庫可以在其外部實現自己的功能,從而簡化數據訪問。

為了使用JPA,我們需要一個實現。 除了EclipseLink,最常見的是Hibernate,OpenJPA和DataNucleus。 它們都支持JPA 2.2。

它們不僅實現了JPA規范,而且還提供了其他功能來克服JPA的某些缺點。 這些功能是實現之間的主要區別,它們使代碼特定化,例如,使用Hibernate遵循更改JPA規范時需要進行的代碼更改。 僅當使用JPA時,我們才可以在實現之間切換。 但是,我從未見過任何項目改變了JPA供應商。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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