From 7d48e1228bb06b49439fbcaa895b2b58954adb46 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Thu, 12 Jan 2017 16:23:40 +0100
Subject: [PATCH] Correcting JPA rdbms2catalog export exercise

---
 .../Ref/src/rdbms2catalog.jpa.skeleton.zip    | Bin 12854 -> 0 bytes
 Doc/Sda1/jdbc.xml                             |  68 +++++++++++++-----
 Doc/Sda1/jpaintro.xml                         |  50 ++++++++-----
 P/Sda1/Jpa/rdbms2catalog/skeleton/pom.xml     |  16 ++---
 .../sda1/sql2catalog/model/Description.java   |   3 -
 .../main/resources/META-INF/persistence.xml   |  60 +++++++++-------
 .../test/java/rdbms2catalog/TestSchema.java   |   3 +-
 P/Sda1/Jpa/rdbms2catalog/solution/pom.xml     |   5 +-
 .../mi/sda1/sql2catalog/RdbmsAccess.java      |  36 ++++++----
 .../sda1/sql2catalog/model/Description.java   |   3 +-
 .../main/resources/META-INF/persistence.xml   |  58 ++++++++-------
 .../test/java/rdbms2catalog/TestSchema.java   |  12 ++--
 12 files changed, 191 insertions(+), 123 deletions(-)
 delete mode 100644 Doc/Sda1/Ref/src/rdbms2catalog.jpa.skeleton.zip

diff --git a/Doc/Sda1/Ref/src/rdbms2catalog.jpa.skeleton.zip b/Doc/Sda1/Ref/src/rdbms2catalog.jpa.skeleton.zip
deleted file mode 100644
index 50ae5f1b69797913c10a10bec021afac30693d9f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12854
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
N5F55^NB8a5{{dct+uQ&E

diff --git a/Doc/Sda1/jdbc.xml b/Doc/Sda1/jdbc.xml
index 7b29a0c37..517e205e4 100644
--- a/Doc/Sda1/jdbc.xml
+++ b/Doc/Sda1/jdbc.xml
@@ -3532,42 +3532,76 @@ CREATE TABLE Description (
 -- A single product lacking age property --
 INSERT INTO Product (id, name) VALUES (1, 'Monkey Picked Tea');
 
-INSERT INTO Description VALUES(1, 0, 'Picked only by specially trained monkeys');
-INSERT INTO Description VALUES(1, 1, 'Rare wild Chinese tea');
+INSERT INTO Description VALUES(1, 0, 'Picked only by specially trained monkeys.');
+INSERT INTO Description VALUES(1, 1, 'Rare wild Chinese tea.');
 
 INSERT INTO Product VALUES (2, '4-Person Instant Tent', 15);
 INSERT INTO Description VALUES(2, 0, 'Exclusive WeatherTec system.');
-INSERT INTO Description VALUES(2, 1, '4-person, 1-compartment tent');
-INSERT INTO Description VALUES(2, 2, 'Pre-attached tent poles');</programlisting>
+INSERT INTO Description VALUES(2, 1, '4-person, 1-compartment tent.');
+INSERT INTO Description VALUES(2, 2, 'Pre-attached tent poles.');</programlisting>
 
-                <para>Write a <xref linkend="glo_JDBC"/> application which
-                reads from your RDBMS data and exports a corresponding <xref
-                linkend="glo_XML"/> instance:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Explain the ratio of the <code>UNIQUE(product,
+                    orderIndex)</code> constraint in
+                    <classname>Description</classname>.</para>
+                  </listitem>
+
+                  <listitem>
+                    <para>Write a <xref linkend="glo_JDBC"/> application which
+                    reads from your RDBMS data and exports a corresponding
+                    <xref linkend="glo_XML"/> instance:</para>
 
-                <programlisting language="xml">&lt;catalog&gt;
+                    <programlisting language="xml">&lt;catalog&gt;
   &lt;product id="1"&gt;
     &lt;name&gt;Monkey Picked Tea&lt;/name&gt;
     &lt;description&gt;Picked only by specially trained monkeys&lt;/description&gt;
-    &lt;description&gt;Rare wild Chinese tea&lt;/description&gt;
+    &lt;description&gt;Rare wild Chinese tea.&lt;/description&gt;
   &lt;/product&gt;
   &lt;product id="2"&gt;
     &lt;name&gt;4-Person Instant Tent&lt;/name&gt;
     &lt;description&gt;Exclusive WeatherTec system.&lt;/description&gt;
-    &lt;description&gt;4-person, 1-compartment tent&lt;/description&gt;
-    &lt;description&gt;Pre-attached tent poles&lt;/description&gt;
+    &lt;description&gt;4-person, 1-compartment tent.&lt;/description&gt;
+    &lt;description&gt;Pre-attached tent poles.&lt;/description&gt;
     &lt;age&gt;15&lt;/age&gt;
   &lt;/product&gt;
 &lt;/catalog&gt;</programlisting>
 
-                <para>Use <link
-                xlink:href="https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html">PreparedStatement</link>
-                instances throughout your application.</para>
+                    <para>Use <link
+                    xlink:href="https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html">PreparedStatement</link>
+                    instances throughout your application.</para>
+                  </listitem>
+                </orderedlist>
               </question>
 
               <answer>
-                <annotation role="make">
-                  <para role="eclipse">Sda1/rdbms2catalog</para>
-                </annotation>
+                <orderedlist>
+                  <listitem>
+                    <para>Without <code>UNIQUE(product, orderIndex)</code> the
+                    following state would become possible:</para>
+
+                    <programlisting language="none">+---------+------------------------------+------------+
+| product | text                         | orderIndex |
++---------+------------------------------+------------+
+|   ...   |             ...              |    ...     |
+|       2 | Exclusive WeatherTec system. |          1 |
+|       2 | 4-person, 1-compartment tent.|          1 |
+|   ...   |             ...              |    ...     |
++---------+------------------------------+------------+</programlisting>
+
+                    <para>The presence of two distinct descriptions having
+                    identical orderIndex does not enforce the required
+                    order.</para>
+                  </listitem>
+
+                  <listitem>
+                    <para>See:</para>
+
+                    <annotation role="make">
+                      <para role="eclipse">Sda1/rdbms2catalog</para>
+                    </annotation>
+                  </listitem>
+                </orderedlist>
               </answer>
             </qandaentry>
           </qandadiv>
diff --git a/Doc/Sda1/jpaintro.xml b/Doc/Sda1/jpaintro.xml
index d75b1fed3..12bf9e209 100644
--- a/Doc/Sda1/jpaintro.xml
+++ b/Doc/Sda1/jpaintro.xml
@@ -326,16 +326,18 @@ TRACE [main] sql.BasicBinder (BasicBinder.java:65) - binding parameter [1] as [V
           <question>
             <para>In <xref linkend="sda1SectRelationadatal2Xml"/> you exported
             RDBMS data to <xref linkend="glo_XML"/> by means of <xref
-            linkend="glo_JDBC"/>.</para>
-
-            <para>In this exercise we want to facilitate the database reading
-            part by using <xref linkend="glo_JPA"/>. You may follow the
-            subsequently described steps:</para>
+            linkend="glo_JDBC"/>. In this follow up exercise <xref
+            linkend="glo_JPA"/> will be used facilitating the database reading
+            part following:</para>
 
             <orderedlist>
               <listitem>
-                <para>Import the Maven skeleton project <link
-                xlink:href="/Sda1/Ref/src/rdbms2catalog.jpa.skeleton.zip">rdbms2catalog.jpa.skeleton.zip</link>.</para>
+                <para>Import the following (standalone) Maven skeleton project
+                into your workspace:</para>
+
+                <annotation role="make">
+                  <para role="eclipse">Sda1/Jpa/rdbms2catalog/skeleton</para>
+                </annotation>
               </listitem>
 
               <listitem>
@@ -348,17 +350,30 @@ TRACE [main] sql.BasicBinder (BasicBinder.java:65) - binding parameter [1] as [V
                 <tip>
                   <para>Since <classname>Description</classname> instances are
                   composites with respect to <classname>Product</classname>
-                  you might want to use <interfacename
+                  (Composition rather than aggregation or association) you
+                  might want to use <interfacename
                   xlink:href="https://en.wikibooks.org/wiki/Java_Persistence/ElementCollection">@ElementCollection</interfacename>
                   in favour of <interfacename
                   xlink:href="https://en.wikibooks.org/wiki/Java_Persistence/ManyToOne">@ManyToOne</interfacename>
-                  / <interfacename
+                  and <interfacename
                   xlink:href="https://en.wikibooks.org/wiki/Java_Persistence/OneToMany">@OneToMany</interfacename>.</para>
                 </tip>
 
-                <para>Test your implementation by uncommenting the test
-                method's body in
-                <classname>rdbms2catalog.TestSchema</classname>.</para>
+                <tip>
+                  <para>Regarding ordering of descriptions you may want to
+                  read <interfacename
+                  xlink:href="http://docs.oracle.com/javaee/7/api/javax/persistence/OrderColumn.html">@OrderColumn</interfacename>'s
+                  documentation.</para>
+                </tip>
+              </listitem>
+
+              <listitem>
+                <para>The <xref linkend="glo_Junit"/> test class
+                <classname>rdbms2catalog.TestSchema</classname> does contain
+                <xref linkend="glo_JPA"/> data inserting code being commented
+                out. Having your data model completed you may uncomment these.
+                Test execution will then populate your database with sample
+                data.</para>
               </listitem>
 
               <listitem>
@@ -367,11 +382,12 @@ TRACE [main] sql.BasicBinder (BasicBinder.java:65) - binding parameter [1] as [V
 
                 <tip>
                   <para><filename>META-INF/persistence.xml</filename> does
-                  contain a second persistence unit definition
-                  <property>name="none"</property> which does not alter the
-                  database schema. Since your tests already inserted required
-                  test data you may use this alternate configuration for using
-                  your RDBMS as a data source.</para>
+                  contain a second persistence unit
+                  <quote>strategy_none</quote> which does not alter the
+                  database schema. Since your tests already created a schema
+                  and inserted required test data you may use this alternate
+                  configuration for reading from your RDBMS data
+                  source.</para>
                 </tip>
               </listitem>
             </orderedlist>
diff --git a/P/Sda1/Jpa/rdbms2catalog/skeleton/pom.xml b/P/Sda1/Jpa/rdbms2catalog/skeleton/pom.xml
index b8bb6115c..0be8114f2 100644
--- a/P/Sda1/Jpa/rdbms2catalog/skeleton/pom.xml
+++ b/P/Sda1/Jpa/rdbms2catalog/skeleton/pom.xml
@@ -2,15 +2,8 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
-	<parent>
-		<groupId>de.hdm-stuttgart.mi</groupId>
-		<artifactId>lecturenotes-pom</artifactId>
-		<version>1.0</version>
-		<relativePath>../../../../pom.xml</relativePath>
-	</parent>
-
 	<groupId>de.hdm-stuttgart.mi.sda1</groupId>
-	<artifactId>rdbms2catalog</artifactId>
+	<artifactId>rdbms2catalog-skeleton</artifactId>
 	<version>0.9</version>
 	<packaging>jar</packaging>
 
@@ -28,6 +21,7 @@
 		<dependency>
 			<groupId>mysql</groupId>
 			<artifactId>mysql-connector-java</artifactId>
+			<version>5.1.39</version>
 		</dependency>
 
 		<dependency>
@@ -54,7 +48,7 @@
 		<dependency>
 			<groupId>org.jdom</groupId>
 			<artifactId>jdom2</artifactId>
-			<version>${org.jdom.jdom2.version}</version>
+			<version>2.0.6</version>
 		</dependency>
 
 	</dependencies>
@@ -139,7 +133,7 @@
 						<transformer
 							implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
 							<manifestEntries>
-								<Main-Class>jpaintro.university.CreateEntity</Main-Class>
+								<Main-Class>de.hdm_stuttgart.mi.sda1.sql2catalog.Rdbms2Xml</Main-Class>
 							</manifestEntries>
 						</transformer>
 					</transformers>
@@ -156,4 +150,4 @@
 
 		</plugins>
 	</build>
-</project>
+</project>
\ No newline at end of file
diff --git a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
index 4f3187ef4..753fe59db 100644
--- a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
+++ b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
@@ -8,8 +8,5 @@ import javax.persistence.Id;
 public class Description {
 
 	@Id
-	@GeneratedValue
 	Long id;
-	
-	
 }
diff --git a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/resources/META-INF/persistence.xml b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/resources/META-INF/persistence.xml
index 99110e6f4..964be2ed9 100644
--- a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/resources/META-INF/persistence.xml
+++ b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/main/resources/META-INF/persistence.xml
@@ -1,54 +1,62 @@
-<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
+<persistence
+	version="2.1"
+	xmlns="http://xmlns.jcp.org/xml/ns/persistence"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
-	http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
-	version="2.1">
+	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
+	http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
 	
-	<persistence-unit name="drop-create" transaction-type="RESOURCE_LOCAL">
+	<persistence-unit name = "strategy_drop-and-create">
 		
 		<exclude-unlisted-classes>false</exclude-unlisted-classes>
 		
 		<properties>
-			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
-			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
-			<property name="javax.persistence.jdbc.user" value="hdmuser"/>
-			<property name="javax.persistence.jdbc.password" value="XYZ"/>
+			<!-- 
+                JDBC database connection parameter
+            -->
+
+			<property name = "javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
+			<property name = "javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
+			<property name = "javax.persistence.jdbc.user" value="hdmuser"/>
+			<property name = "javax.persistence.jdbc.password" value="XYZ"/>
 			
 			<property
-				name="javax.persistence.schema-generation.database.action"
+				name = "javax.persistence.schema-generation.database.action"
 				value="drop-and-create"/>
 			
-			<property name="hibernate.format_sql" value="true"/>
-			<property name="hibernate.use_sql_comments" value="true"/>
+			<property name = "hibernate.show_sql" value = "true" />
+			<property name = "hibernate.format_sql" value="true"/>
+			<property name = "hibernate.use_sql_comments" value="true"/>
 			
-			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
+			<property name = "hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
 			
-			<property name="hibernate.archive.autodetection" value="class"/>
+			<property name = "hibernate.archive.autodetection" value="class"/>
 			
 		</properties>
 	</persistence-unit>
 	
-	<persistence-unit name="update" transaction-type="RESOURCE_LOCAL">
+	<persistence-unit name = "strategy_none">
+		
 		<exclude-unlisted-classes>false</exclude-unlisted-classes>
 		
 		<properties>
-			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
-			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
-			<property name="javax.persistence.jdbc.user" value="hdmuser"/>
-			<property name="javax.persistence.jdbc.password" value="XYZ"/>
+			<property name = "javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
+			<property name = "javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
+			<property name = "javax.persistence.jdbc.user" value="hdmuser"/>
+			<property name = "javax.persistence.jdbc.password" value="XYZ"/>
 			
 			<property
-				name="javax.persistence.schema-generation.database.action"
-				value="update"/>
+				name = "javax.persistence.schema-generation.database.action"
+				value="none"/>
 			
-			<property name="hibernate.format_sql" value="true"/>
-			<property name="hibernate.use_sql_comments" value="true"/>
+			<property name = "hibernate.show_sql" value = "true" />
+			<property name = "hibernate.format_sql" value="true"/>
+			<property name = "hibernate.use_sql_comments" value="true"/>
 			
-			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
+			<property name = "hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
 			
-			<property name="hibernate.archive.autodetection" value="class"/>
+			<property name = "hibernate.archive.autodetection" value="class"/>
 			
 		</properties>
 	</persistence-unit>
 	
-</persistence>
\ No newline at end of file
+</persistence>
diff --git a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/test/java/rdbms2catalog/TestSchema.java b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/test/java/rdbms2catalog/TestSchema.java
index c1ee75539..8066bc23e 100644
--- a/P/Sda1/Jpa/rdbms2catalog/skeleton/src/test/java/rdbms2catalog/TestSchema.java
+++ b/P/Sda1/Jpa/rdbms2catalog/skeleton/src/test/java/rdbms2catalog/TestSchema.java
@@ -12,7 +12,7 @@ public class TestSchema {
     static final EntityManager em;
 
     static {
-	    final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("drop-create");
+	    final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("strategy_drop-and-create");
 	    em = emFactory.createEntityManager();
 	}
 
@@ -36,6 +36,7 @@ public class TestSchema {
 //	          instantTent.getDescriptions().add(new Description("Pre-attached tent poles"));
 	          
 	          transaction.commit();
+	          em.close();
 	          em.getEntityManagerFactory().close();
 	    }
 	}
diff --git a/P/Sda1/Jpa/rdbms2catalog/solution/pom.xml b/P/Sda1/Jpa/rdbms2catalog/solution/pom.xml
index ede66d9b8..c674df304 100644
--- a/P/Sda1/Jpa/rdbms2catalog/solution/pom.xml
+++ b/P/Sda1/Jpa/rdbms2catalog/solution/pom.xml
@@ -18,7 +18,6 @@
 	<name>rdbms2catalogJpa</name>
 	<url>http://www.mi.hdm-stuttgart.de/freedocs</url>
 
-
 	<dependencies>
 
 		<dependency>
@@ -141,7 +140,7 @@
 						<transformer
 							implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
 							<manifestEntries>
-								<Main-Class>jpaintro.university.CreateEntity</Main-Class>
+								<Main-Class>de.hdm_stuttgart.mi.sda1.sql2catalog.Rdbms2Xml</Main-Class>
 							</manifestEntries>
 						</transformer>
 					</transformers>
@@ -158,4 +157,4 @@
 
 		</plugins>
 	</build>
-</project>
+</project>
\ No newline at end of file
diff --git a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java
index 11c0a0394..a4b3d6321 100644
--- a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java
+++ b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java
@@ -4,6 +4,7 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.EntityTransaction;
 import javax.persistence.Persistence;
+import javax.persistence.criteria.CriteriaQuery;
 
 import org.jdom2.Element;
 
@@ -15,10 +16,11 @@ import de.hdm_stuttgart.mi.sda1.sql2catalog.model.Product;
  */
 public class RdbmsAccess {
 
+   static final EntityManagerFactory emFactory;
    static final EntityManager em;
 
    static {
-      final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("update");
+      emFactory =  Persistence.createEntityManagerFactory("strategy_none");
       em = emFactory.createEntityManager();
    }
 
@@ -27,26 +29,32 @@ public class RdbmsAccess {
     * @param root
     */
    public void appendProducts(final Element root) {
+
+      final CriteriaQuery<Product> criteria = emFactory.getCriteriaBuilder().createQuery(Product.class);
+      criteria.from(Product.class);
+
       final EntityTransaction transaction = em.getTransaction();
-      transaction.begin();
+      transaction.begin();{
+
+         for (final Product p: em.createQuery(criteria).getResultList()) {
 
-      for (final Product p: em.createQuery("SELECT p FROM Product p", Product.class).getResultList()) {
+            final Element productElement = new Element("product");
+            root.addContent(productElement);
+            productElement.setAttribute("id", "" + p.getId());
 
-         final Element productElement = new Element("product");
-         root.addContent(productElement);
-         productElement.setAttribute("id", "" + p.getId());
-         
-         System.out.println(p.getName() + "++++++++++++++++++++++++++++++++++++");
+            System.out.println(p.getName() + "++++++++++++++++++++++++++++++++++++");
 
-         productElement.addContent(new Element("name").addContent(p.getName()));
+            productElement.addContent(new Element("name").addContent(p.getName()));
 
-         p.getDescriptions().stream().forEach(description -> {
-            productElement.addContent(new Element("description").addContent(description.getDescription()));
-         });
+            p.getDescriptions().stream().forEach(description -> {
+               productElement.addContent(new Element("description").addContent(description.getDescription()));
+            });
 
-         p.getAge().ifPresent(age -> productElement.addContent(new Element("age").addContent(age.toString())));
+            p.getAge().ifPresent(age -> productElement.addContent(new Element("age").addContent(age.toString())));
+         }
       }
       transaction.commit();
-      em.getEntityManagerFactory().close();
+      em.close();
+      emFactory.close();
    }
 }
\ No newline at end of file
diff --git a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
index 0db107250..ff9283a79 100644
--- a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
+++ b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/model/Description.java
@@ -1,5 +1,6 @@
 package de.hdm_stuttgart.mi.sda1.sql2catalog.model;
 
+import javax.persistence.Column;
 import javax.persistence.Embeddable;
 
 // Class not strictly required but allows for relational table's
@@ -14,7 +15,7 @@ public class Description {
    public Description(final String description) {
       setDescription(description);
    }
-
+   @Column(name="text")
    String description;
 
    public String getDescription() {
diff --git a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/resources/META-INF/persistence.xml b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/resources/META-INF/persistence.xml
index 7d12655f6..964be2ed9 100644
--- a/P/Sda1/Jpa/rdbms2catalog/solution/src/main/resources/META-INF/persistence.xml
+++ b/P/Sda1/Jpa/rdbms2catalog/solution/src/main/resources/META-INF/persistence.xml
@@ -1,52 +1,60 @@
-<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
+<persistence
+	version="2.1"
+	xmlns="http://xmlns.jcp.org/xml/ns/persistence"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
-	http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
-	version="2.1">
+	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
+	http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
 	
-	<persistence-unit name="drop-create" transaction-type="RESOURCE_LOCAL">
+	<persistence-unit name = "strategy_drop-and-create">
 		
 		<exclude-unlisted-classes>false</exclude-unlisted-classes>
 		
 		<properties>
-			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
-			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
-			<property name="javax.persistence.jdbc.user" value="hdmuser"/>
-			<property name="javax.persistence.jdbc.password" value="XYZ"/>
+			<!-- 
+                JDBC database connection parameter
+            -->
+
+			<property name = "javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
+			<property name = "javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
+			<property name = "javax.persistence.jdbc.user" value="hdmuser"/>
+			<property name = "javax.persistence.jdbc.password" value="XYZ"/>
 			
 			<property
-				name="javax.persistence.schema-generation.database.action"
+				name = "javax.persistence.schema-generation.database.action"
 				value="drop-and-create"/>
 			
-			<property name="hibernate.format_sql" value="true"/>
-			<property name="hibernate.use_sql_comments" value="true"/>
+			<property name = "hibernate.show_sql" value = "true" />
+			<property name = "hibernate.format_sql" value="true"/>
+			<property name = "hibernate.use_sql_comments" value="true"/>
 			
-			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
+			<property name = "hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
 			
-			<property name="hibernate.archive.autodetection" value="class"/>
+			<property name = "hibernate.archive.autodetection" value="class"/>
 			
 		</properties>
 	</persistence-unit>
 	
-	<persistence-unit name="update" transaction-type="RESOURCE_LOCAL">
+	<persistence-unit name = "strategy_none">
+		
 		<exclude-unlisted-classes>false</exclude-unlisted-classes>
 		
 		<properties>
-			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
-			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
-			<property name="javax.persistence.jdbc.user" value="hdmuser"/>
-			<property name="javax.persistence.jdbc.password" value="XYZ"/>
+			<property name = "javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
+			<property name = "javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hdm?useSSL=false"/>
+			<property name = "javax.persistence.jdbc.user" value="hdmuser"/>
+			<property name = "javax.persistence.jdbc.password" value="XYZ"/>
 			
 			<property
-				name="javax.persistence.schema-generation.database.action"
-				value="update"/>
+				name = "javax.persistence.schema-generation.database.action"
+				value="none"/>
 			
-			<property name="hibernate.format_sql" value="true"/>
-			<property name="hibernate.use_sql_comments" value="true"/>
+			<property name = "hibernate.show_sql" value = "true" />
+			<property name = "hibernate.format_sql" value="true"/>
+			<property name = "hibernate.use_sql_comments" value="true"/>
 			
-			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
+			<property name = "hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
 			
-			<property name="hibernate.archive.autodetection" value="class"/>
+			<property name = "hibernate.archive.autodetection" value="class"/>
 			
 		</properties>
 	</persistence-unit>
diff --git a/P/Sda1/Jpa/rdbms2catalog/solution/src/test/java/rdbms2catalog/TestSchema.java b/P/Sda1/Jpa/rdbms2catalog/solution/src/test/java/rdbms2catalog/TestSchema.java
index 5be0bba7e..917598381 100644
--- a/P/Sda1/Jpa/rdbms2catalog/solution/src/test/java/rdbms2catalog/TestSchema.java
+++ b/P/Sda1/Jpa/rdbms2catalog/solution/src/test/java/rdbms2catalog/TestSchema.java
@@ -15,7 +15,7 @@ public class TestSchema {
     static final EntityManager em;
 
     static {
-	    final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("drop-create");
+	    final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("strategy_drop-and-create");
 	    em = emFactory.createEntityManager();
 	}
 
@@ -26,18 +26,20 @@ public class TestSchema {
 	          transaction.begin();
 	          
 	          final Product monkeyPickedTea = new Product(1, "Monkey Picked Tea", null);
-	          monkeyPickedTea.getDescriptions().add(new Description("Picked by specially trained monkeys"));
-	          monkeyPickedTea.getDescriptions().add(new Description("Rare wild Chinese tea"));
+	          monkeyPickedTea.getDescriptions().add(new Description("Picked by specially trained monkeys."));
+	          monkeyPickedTea.getDescriptions().add(new Description("Rare wild Chinese tea."));
 	          
 	          final Product instantTent = new Product(2, "4-Person Instant Tent", 15);
 	          instantTent.getDescriptions().add(new Description("Exclusive WeatherTec system."));
-	          instantTent.getDescriptions().add(new Description("4-person, 1-compartment tent"));
-	          instantTent.getDescriptions().add(new Description("Pre-attached tent poles"));
+	          instantTent.getDescriptions().add(new Description("4-person, 1-compartment tent."));
+	          instantTent.getDescriptions().add(new Description("Pre-attached tent poles."));
 	          
 	          em.persist(monkeyPickedTea);
 	          em.persist(instantTent);
 	          
 	          transaction.commit();
+	          em.close();
+	          em.getEntityManagerFactory().close();
 	    }
 	}
 }
\ No newline at end of file
-- 
GitLab