[hibernate-commits] Hibernate SVN: r20292 - in core/trunk/documentation/quickstart: src/main/docbook/en-US/content and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Aug 31 13:59:31 EDT 2010


Author: steve.ebersole at jboss.com
Date: 2010-08-31 13:59:31 -0400 (Tue, 31 Aug 2010)
New Revision: 20292

Added:
   core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_jpa.xml
Modified:
   core/trunk/documentation/quickstart/src/main/docbook/en-US/Hibernate_Getting_Started_Guide.xml
   core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_annotations.xml
   core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_native.xml
   core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/java/org/hibernate/tutorial/em/EntityManagerIllustrationTest.java
   core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/resources/META-INF/persistence.xml
Log:
HHH-5445 - Write a jpa/entitymanager tutorial guide


Modified: core/trunk/documentation/quickstart/src/main/docbook/en-US/Hibernate_Getting_Started_Guide.xml
===================================================================
--- core/trunk/documentation/quickstart/src/main/docbook/en-US/Hibernate_Getting_Started_Guide.xml	2010-08-31 16:05:27 UTC (rev 20291)
+++ core/trunk/documentation/quickstart/src/main/docbook/en-US/Hibernate_Getting_Started_Guide.xml	2010-08-31 17:59:31 UTC (rev 20292)
@@ -31,6 +31,7 @@
         </partintro>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/tutorial_native.xml" />
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/tutorial_annotations.xml" />
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/tutorial_jpa.xml" />
     </part>
 
 </book>
\ No newline at end of file

Modified: core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_annotations.xml
===================================================================
--- core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_annotations.xml	2010-08-31 16:05:27 UTC (rev 20291)
+++ core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_annotations.xml	2010-08-31 17:59:31 UTC (rev 20292)
@@ -30,7 +30,7 @@
         </para>
     </section>
 
-    <section id="hibernate-gsg-tutorial-basic-entity">
+    <section id="hibernate-gsg-tutorial-annotations-entity">
         <title>The annotated entity Java class</title>
         <para>
             The entity class in this tutorial is <classname>org.hibernate.tutorial.annotations.Event</classname>
@@ -39,7 +39,7 @@
             annotations to provide the metadata instead of a separate <filename>hbm.xml</filename> file.
         </para>
 
-        <example id="hibernate-gsg-tutorial-basic-entity-entity">
+        <example id="hibernate-gsg-tutorial-annotations-entity-entity">
             <title>Identifying the class as an entity</title>
             <programlisting role="JAVA">@Entity
 @Table( name = "EVENTS" )
@@ -57,7 +57,7 @@
             <database class="table">EVENT</database>).
         </para>
 
-        <example id="hibernate-gsg-tutorial-basic-entity-id">
+        <example id="hibernate-gsg-tutorial-annotations-entity-id">
             <title>Identifying the identifier property</title>
             <programlisting role="JAVA">@Id
 @GeneratedValue(generator="increment")
@@ -75,7 +75,7 @@
             strategy for this entity's identifier values.
         </para>
 
-        <example id="hibernate-gsg-tutorial-basic-entity-properties">
+        <example id="hibernate-gsg-tutorial-annotations-entity-properties">
             <title>Identifying basic properties</title>
             <programlisting role="JAVA">public String getTitle() {
     return title;
@@ -112,14 +112,15 @@
         <itemizedlist>
             <listitem>
                 <para>
-                    With help of the Developer Guide, add an association to the <classname>Event</classname>
-                    entity to model a message thread.
+                    With help of the <citetitle pubwork="book">Developer Guide</citetitle>, add an association to
+                    the <classname>Event</classname> entity to model a message thread.
                 </para>
             </listitem>
             <listitem>
                 <para>
-                    With help of the Developer Guide, add a callback to receive notifications when an
-                    <classname>Event</classname> is created, updated or deleted.  Try the same with an event listener.
+                    With help of the <citetitle pubwork="book">Developer Guide</citetitle>, add a callback to
+                    receive notifications when an <classname>Event</classname> is created, updated or deleted.  Try 
+                    the same with an event listener.
                 </para>
             </listitem>
         </itemizedlist>

Added: core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_jpa.xml
===================================================================
--- core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_jpa.xml	                        (rev 0)
+++ core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_jpa.xml	2010-08-31 17:59:31 UTC (rev 20292)
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<chapter id="hibernate-gsg-tutorial-jpa">
+    <title>Tutorial Using the <firstterm><phrase>Java Persistence API (JPA)</phrase></firstterm></title>
+
+    <para>
+        This tutorial is located within the download bundle under <filename>entitymanager</filename> and illustrates
+        <itemizedlist>
+            <listitem>
+                <para>
+                    using annotations to provide mapping information
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    using <phrase>JPA</phrase>
+                </para>
+            </listitem>
+        </itemizedlist>
+    </para>
+
+    <section id="hibernate-gsg-tutorial-jpa-config">
+        <title><filename>persistence.xml</filename></title>
+
+        <para>
+            The previous tutorials used the Hibernate-specific
+            <filename><replaceable>hibernate.cfg.xml</replaceable></filename> configuration file.  <phrase>JPA</phrase>,
+            however, defines a different <phrase>bootstrap</phrase> process that uses its own configuration file
+            named <filename>persistence.xml</filename>.  How this <phrase>bootstrapping</phrase> works is defined
+            by the <phrase>JPA</phrase> specification.  In <trademark>Java</trademark> SE environments the
+            persistence provider (Hibernate in this case) is required to locate all <phrase>JPA</phrase>
+            configuration files by classpath lookup of the <filename>META-INF/persistence.xml</filename> resource
+            name.
+        </para>
+
+        <example id="hibernate-gsg-tutorial-jpa-config-pu">
+            <title><filename>persistence.xml</filename></title>
+            <programlisting role="XML"><![CDATA[<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_2_0.xsd"
+        version="2.0">
+    <persistence-unit name="org.hibernate.tutorial.jpa">
+        ...
+    </persistence-unit>
+</persistence>]]></programlisting>
+        </example>
+
+        <para>
+            <filename>persistence.xml</filename> files should provide a unique name for each
+            <phrase>persistence unit</phrase>.  This name is how applications reference the configuration
+            while obtaining an <interfacename>javax.persistence.EntityManagerFactory</interfacename> reference.
+        </para>
+
+        <para>
+            The settings defined in the <literal>properties</literal> element were already discussed in
+            <xref linkend="hibernate-gsg-tutorial-basic-config"/>.  Here the <literal>javax.persistence</literal>-prefixed
+            varieties are used when possible.  For the remaining Hibernate-specific configuration setting names notice
+            that they are now prefixed with <literal>hibernate.</literal>.
+        </para>
+
+        <para>
+            Additionally, the <literal>class</literal> element functions the same as discussed in
+            <xref linkend="hibernate-gsg-tutorial-annotations-config"/>.
+        </para>
+    </section>
+
+    <section id="hibernate-gsg-tutorial-jpa-entity">
+        <title>The annotated entity Java class</title>
+        <para>
+            The entity is exactly the same as that from the annotations tutorial.  See
+            <xref linkend="hibernate-gsg-tutorial-annotations-entity"/>
+        </para>
+    </section>
+
+    <section id="hibernate-gsg-tutorial-jpa-test">
+        <title>Example code</title>
+        <para>
+            The previous tutorials used the Hibernate APIs.  This tutorial uses the <phrase>JPA</phrase> APIs.
+        </para>
+
+        <example id="hibernate-gsg-tutorial-jpa-test-setUp">
+            <title>Obtaining the <interfacename>javax.persistence.EntityManagerFactory</interfacename></title>
+            <programlisting role="JAVA">protected void setUp() throws Exception {
+    entityManagerFactory = Persistence.createEntityManagerFactory( "org.hibernate.tutorial.jpa" );
+}</programlisting>
+        </example>
+
+        <para>
+            Notice again the use of <literal>org.hibernate.tutorial.jpa</literal> as the
+            <phrase>persistence unit</phrase> name, which matches from <xref linkend="hibernate-gsg-tutorial-jpa-config-pu"/>
+        </para>
+
+        <example id="hibernate-gsg-tutorial-jpa-test-saving">
+            <title>Saving (persisting) entities</title>
+            <programlisting role="JAVA">EntityManager entityManager = entityManagerFactory.createEntityManager();
+entityManager.getTransaction().begin();
+entityManager.persist( new Event( "Our very first event!", new Date() ) );
+entityManager.persist( new Event( "A follow up event", new Date() ) );
+entityManager.getTransaction().commit();
+entityManager.close();</programlisting>
+        </example>
+
+        <para>
+            The code is pretty similar to <xref linkend="hibernate-gsg-tutorial-basic-test-saving"/>.  Here
+            we use an <interfacename>javax.persistence.EntityManager</interfacename> as opposed to a
+            <interfacename>org.hibernate.Session</interfacename>.  <phrase>JPA</phrase> calls this operation
+            <literal>persist</literal> instead of <literal>save</literal>.
+        </para>
+
+        <example id="hibernate-gsg-tutorial-jpa-test-list">
+            <title>Obtaining a list of entities</title>
+            <programlisting role="JAVA"><![CDATA[entityManager = entityManagerFactory.createEntityManager();
+entityManager.getTransaction().begin();
+List<Event> result = entityManager.createQuery( "from Event", Event.class ).getResultList();
+for ( Event event : result ) {
+    System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );
+}
+entityManager.getTransaction().commit();
+entityManager.close();]]></programlisting>
+        </example>
+
+        <para>
+            Again, the code is pretty similar to <xref linkend="hibernate-gsg-tutorial-basic-test-list"/>.
+        </para>
+    </section>
+
+</chapter>
\ No newline at end of file

Modified: core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_native.xml
===================================================================
--- core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_native.xml	2010-08-31 16:05:27 UTC (rev 20291)
+++ core/trunk/documentation/quickstart/src/main/docbook/en-US/content/tutorial_native.xml	2010-08-31 17:59:31 UTC (rev 20292)
@@ -320,8 +320,8 @@
             </listitem>
             <listitem>
                 <para>
-                    With help of the Developer Guide, add an association to the <classname>Event</classname>
-                    entity to model a message thread.
+                    With help of the <citetitle pubwork="book">Developer Guide</citetitle>, add an association to
+                    the <classname>Event</classname> entity to model a message thread.
                 </para>
             </listitem>
         </itemizedlist>

Modified: core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/java/org/hibernate/tutorial/em/EntityManagerIllustrationTest.java
===================================================================
--- core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/java/org/hibernate/tutorial/em/EntityManagerIllustrationTest.java	2010-08-31 16:05:27 UTC (rev 20291)
+++ core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/java/org/hibernate/tutorial/em/EntityManagerIllustrationTest.java	2010-08-31 17:59:31 UTC (rev 20292)
@@ -42,7 +42,8 @@
 	@Override
 	protected void setUp() throws Exception {
 		// like discussed with regards to SessionFactory, an EntityManagerFactory is set up once for an application
-		entityManagerFactory = Persistence.createEntityManagerFactory( "hibernate-jpa-tutorial" );
+		// 		IMPORTANT: notice how the name here matches the name we gave the persistence-unit in persistence.xml!
+		entityManagerFactory = Persistence.createEntityManagerFactory( "org.hibernate.tutorial.jpa" );
 	}
 
 	@Override

Modified: core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/resources/META-INF/persistence.xml
===================================================================
--- core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/resources/META-INF/persistence.xml	2010-08-31 16:05:27 UTC (rev 20291)
+++ core/trunk/documentation/quickstart/tutorials/entitymanager/src/test/resources/META-INF/persistence.xml	2010-08-31 17:59:31 UTC (rev 20292)
@@ -26,7 +26,7 @@
              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
              version="2.0">
 
-    <persistence-unit name="hibernate-jpa-tutorial">
+    <persistence-unit name="org.hibernate.tutorial.jpa">
         <description>
             Persistence unit for the JPA tutorial of the Hibernate Getting Started Guide
         </description>



More information about the hibernate-commits mailing list