2016-11-18 7 views
2

私はJPAを持っていなかったプロジェクトに取り組んでいましたが、Hibernate 誰でも説明できますか?JPA仕様なしで休止状態がどのように動作するのですか

プロジェクトのpom.xml

<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>5.1.3.Final</version> 
    </dependency> 
+0

JPAが指定されるまで何年も前から存在していたことに注意してください。 –

+0

プロジェクト内でJPAを使用している可能性があります。依存関係にJPA APIを追加していないので、それはあなたが意味するものですか? –

+0

JPAの前に休止状態が存在するとはどういう意味ですか? Hibernateには独自の仕様がありますか? エンティティクラスにはimport javax.persistence.Entity; JPAを使用しているということですか? –

答えて

2

HibernateはあなたがJPAを使用しているときに休止状態、EclipseLinkはまたは他の実装のいずれかを使用している可能性がありますがJPAの仕様に応じてコーディングしていることを意味し、JPAの実装ですすなわち、javax.persistence.*インターフェースを使用して、通常は実装固有の機能を使用しないようにします(それでも可能ですが)。

Hibernateで直接コーディングする場合は、具体的なクラス(org.hibernate.*)と方法のみを使用し、javax.persistenceは参照できません。

JDBCと似ています。ドライバ固有のクラスを使用するコードを記述することもできます(ただし、しばしば必要な理由はありません)が、JDBCインタフェース(ConnectionResultSetStatementなど)を実装するクラスがあります。別のデータベースに切り替えたときに再び学習する必要がなくなりました。

+0

私はJPAをpom.xmlには含めませんでしたが、エンティティクラスにはこのアノテーションがあります。import javax.persistence.Entity; –

+0

JPAを別途組み込む必要はありません。これはJava EEに含まれています(Hibernateのライブラリは実装してからエンティティのコピーを持つ必要があります)。また、多くのアノテーションを同じ意味で使用することもできます。つまり、Hibernateは独自の '@ Entity'アノテーションを持っていますが、JPAのアノテーションも使用することができます。 – Kayaman

+0

今は明らかですが、デフォルトではそこにあります。ありがとうございました –

関連する問題