[英]Difference between Javax.Persistence and Hibernate.Annotations
我正在閱讀關於tutorialspoint的hibernate教程,他們說為了在Hibernate中使用注釋,需要具有以下依賴項:
hibernate-annotations.jar
hibernate-comons-annotations.jar
ejb3-persistence.jar
我已經使用Maven獲取了這些依賴項,但是當他們繼續他們的示例時,他們導入javax.persistence而不是org.hibernate.annotations來使用注釋,例如@Entity @Table
等...
javax.persistence
和org.hibernate.annotations
什么區別? 為什么我覺得我下載了hibernate的注釋而我沒有使用它們?
您使用javax.persistence來保持與實現無關(即您可以在以后更改為使用不同的JPA實現。)如果您想使用Hibernate,可以使用org.hibernate注釋。 但是建議只輸入javax類。 然后Hibernate將提供實現,但可以通過切換不同的依賴項來替換。
javax。*包由JSR(java規范請求)定義。 像接口一樣,javax包定義了契約。 提供者,如hibernate,提供實現。 通過使用javax導入,您可以將自己與特定提供程序分離,並保留將來切換到其他實現的能力。
以下是javax.persistence( https://jcp.org/ja/jsr/all )之外的其他JSR列表。 javax.persistence(2.0)規范由JSR-317定義。
javax.persistence
是Java EE標准,是標准實現。 但org.hibernate.annotations
hibernate特定的實現就像明智的還有其他ORM框架實現,如Toplink,Eclipselink等。明天,如果你覺得切換框架變得更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.