私が参加した新しいプロジェクトでは、Hibernate と JPA という用語を同じ意味で使用し続けています。それで、私はコードに飛び込み、この全体がどのように機能するかを理解しようとしました(Spring、JPA、およびHibernateの世界は初めてです)。理解を深めるために、ここにコードを入れてみます。1) @Configuration クラスがあり、次のものがあります。
@Resource
private HibernateJpaVendorAdapter hibernateOracleJpaVendorAdapter;
LocalContainerEntityManagerFactoryBean entityManager =
new LocalContainerEntityManagerFactoryBean();
entityManager.setJpaVendorAdapter(hibernateOracleJpaVendorAdapter);
entityManager.setPersistenceUnitName("abc");
.
.
したがって、この構成クラスでは、EntityManagerFactory を返しています。
2) 次に、@Persistor とマークされた永続化クラスがあり、リポジトリのメソッドが呼び出されます (たとえば、保存操作用)。
blahblahRepository.save(blahblahEntity, abcdef);
3) 最後に、@Repository アノテーションが付けられたリポジトリ クラスがあります。次に、次のコードがあります。
@PersistenceContext(unitName = "same as the name in persistence.xml")
protected EntityManager entityManager;
「保存」メソッドは、JPA の永続化メソッドをラップします。
getEntityManager().persist(entityObject);
私の質問は次のとおりです。1)hibernateJpaVendorAdapter以外にHibernateについての言葉はありません。ワークスペース全体を検索したところ、構成ファイル内に hibernate という単語が 3 つしか出現していませんでした。2)私が持っている知識から、EntityManagerFactoryまたはEntityManagerのいずれかを使用する必要がありますが、両方を行っていますか?