javax.persistence.* を使用してネイティブ Java サポートで ORM を実現できる場合、休止状態などのプロバイダーを使用する利点は何ですか?
本のJavaの永続性と休止状態は、次のように述べています。
Hibernate EntityManager is a wrapper around Hibernate Core that provides the
JPA programming interfaces, supports the JPA entity instance lifecycle, and allows
you to write queries with the standardized Java Persistence query language.
ここで、Hibernate EntityManager という名前は私を混乱させます。EntityManager は休止状態に属しますか?
また、以下は、Java 永続性を介してドメイン オブジェクトを永続化する方法です。
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("helloworld");
// First unit of work
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
以下は、使用されるpersistence.xmlファイルです。
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="helloworld">
<properties>
<property name="hibernate.ejb.cfgfile"
value="/hibernate.cfg.xml"/>
</properties>
</persistence-unit>
</persistence>
したがって、ここでも永続ユニットは休止状態の構成ファイルを宣言します。では、オブジェクト Persistence.createEntityManagerFactory("helloworld"); とは何ですか? ここで実際に再実行されますか?
EntityManager em = emf.createEntityManager();
createEntityManager() メソッドが保持するオブジェクトはどれですか?