2011-11-29 74 views
1

我知道hibernate是JPA的一個實現,也有它自己的特性。我試圖在註釋中使用hibernate,但是我發現我必須在包「javax.persistence。*」下使用一些註釋,例如:Column,OneToMany,ManyToOne等等。如果我想使用Hibernate和Annotation,我必須使用javax.persistence。*嗎?

我不想使用JPA,但在包「org.hibernate.annotations」下我找不到像OneToMany一樣的註釋。那麼,jpa annatations是hibernate的一部分嗎?如果我想用jpa使用hibernate,我必須使用一些「javax.persistence。*」註釋?

+0

在我看來,如果你需要JPA註解,你不應該避免不使用JPA。在你的情況下,JPA擴展了Hibernate,你需要它,那麼你爲什麼不直接使用JPA與休眠。 –

+1

爲什麼您不想在可以使用JPA的地方使用? –

+0

Dup of http://stackoverflow.com/questions/8306793/why-jpa-and-hibernate-both-have-entity-and-table-annotations – DataNucleus

回答

5

如果我想使用hibernate與jpa,我必須使用一些 「javax.persistence。*」註釋?

是的,你是對的

JPA規範。在javax.persistence包中定義了JPA註釋。 Hibernate不僅實現了JPA規範,而且擴展了它以增加更多功能。所以,休眠創建自己的註解剛剛延長了JPA註解使用Hibernate的功能,並把這些標註在包裝內org.hibernate.annotations

如果有對於JPA註釋添加(如@OneToMany@ManyToOne)無休眠指定的功能,休眠將不會在其org.hibernate.annotations包中做出該註釋,並且您必須根據JPA規範使用來自javax.persistence的這些註釋。

通常,人們會使用JPA批註,直到遇到需要使用休眠功能的情況。

+0

正是我想知道的! – Freewind

相關問題