diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/pom.xml b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/pom.xml
index 3c9b41310a188c8ada7947faf6787ad3eef4f967..71ce95b0aefbb1a152cd71d38227a529a2d514e8 100644
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/pom.xml
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/pom.xml
@@ -1,10 +1,32 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>
 
   <groupId>de.hdm-stuttgart.mi</groupId>
-  <artifactId>mi-maven-archetype-jpa-hibernate</artifactId>
+  <artifactId>mi-maven-archetype-jpa-hibernate-archetype</artifactId>
   <version>1.1</version>
-  <packaging>jar</packaging>
+  <packaging>maven-archetype</packaging>
 
+  <name>mi-maven-archetype-jpa-hibernate-archetype</name>
+
+  <build>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.archetype</groupId>
+        <artifactId>archetype-packaging</artifactId>
+        <version>2.4</version>
+      </extension>
+    </extensions>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-archetype-plugin</artifactId>
+          <version>2.4</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.lectures/sd1SectUsingMaven.html</url>
 </project>
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/META-INF/maven/archetype-metadata.xml b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/META-INF/maven/archetype-metadata.xml
index 6948a180417d33dca84a9bb9b26bb5f11f4eb766..cb3fd2115f4fedc2a474a652ab507c39cac285e1 100644
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="def"
+<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="mi-maven-archetype-jpa-hibernate"
     xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <fileSets>
@@ -15,14 +15,14 @@
         <include>**/*.xml</include>
       </includes>
     </fileSet>
-    <fileSet filtered="true" packaged="true" encoding="UTF-8">
+    <fileSet filtered="true" encoding="UTF-8">
       <directory>src/test/java</directory>
       <includes>
         <include>**/*.java</include>
       </includes>
     </fileSet>
-    <fileSet filtered="false" packaged="false" encoding="UTF-8">
-      <directory/>
+    <fileSet encoding="UTF-8">
+      <directory></directory>
       <includes>
         <include>.gitignore</include>
       </includes>
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateUniversity.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateEntity.java
similarity index 54%
rename from ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateUniversity.java
rename to ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateEntity.java
index acc728420a5a1e901a4eb88a618172d71d12b771..2c33b5394fdd8aea454d8f9038a9174a40f382ca 100644
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateUniversity.java
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/CreateEntity.java
@@ -1,20 +1,19 @@
-package $package;
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package};
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-/**
- * Basic demo showing entity creation
- */
-public class CreateUniversity {
+import ${package}.model.Airline;
 
-   /**
-    * This requires a corresponding entry &lt;persistence-unit name="universityPU"&gt;
-    * in META-INF/persistence.xml.
-    * Do not forget to modify the package name in MITA-INF/persistence.xml accordingly.
-    */
-   static public final String PERSISTENCE_UNIT_NAME = "universityPU";
+public class CreateEntity {
+
+   // This requires a corresponding entry <persistence-unit name="entitytemplatePU"> 
+   // in META-INF/persistence.xml
+   static public final String PERSISTENCE_UNIT_NAME = "entitytemplatePU";
     /**
      * @param args Unused
      */
@@ -24,7 +23,7 @@ public class CreateUniversity {
        final EntityManager em = factory.createEntityManager();
        
        em.getTransaction().begin();
-       final University lh = new University("University of applied sciences");
+       final Airline lh = new Airline("Lufthansa", "DLH");
        
        em.persist(lh);
        em.getTransaction().commit();
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/University.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/University.java
deleted file mode 100644
index 8ad6df072fa39b32dca3629d5b6a5d6fd1571b19..0000000000000000000000000000000000000000
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/University.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package $package;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-
-/**
- * University model example.
- *
- */
-@Entity
-public class University {
-   @Id
-   @GeneratedValue(strategy=GenerationType.IDENTITY)
-   Long id;
-   
-   String name;
-   public String getName() { return name;}
-   public void setName(String name) {this.name = name;}
-   
-   /**
-    * @param name The official name.
-    */
-   public University(final String name) {
-      this.name = name;
-   }
-   protected University(){}
-}
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/model/Airline.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/model/Airline.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2ea4e5f510d7812bad4004bf3bfed7c6626176c
--- /dev/null
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/model/Airline.java
@@ -0,0 +1,33 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Airline {
+   @Id
+   @GeneratedValue (strategy=GenerationType.IDENTITY)
+   Long id;
+   String name;
+   String icaoCode;
+   
+   public Airline(final String name, final String icaoCode) {
+      this.name = name;
+      this.icaoCode = icaoCode;
+   }
+   protected Airline(){}
+   public Long getId() {
+      return id;
+   }
+   public String getName() {
+      return name;
+   }
+   public String getIcaoCode() {
+      return icaoCode;
+   }
+}
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml
index 3ab4d19d9b7a39a8aeb88d613e68f2b210d8793a..0294fbf9a688927c000996e954d577bfc619528e 100644
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/META-INF/persistence.xml
@@ -1,26 +1,32 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
 <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://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
+    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
     
     <!-- 
          The <code>persistence.xml</code> file configures at least one persistence unit;
          each unit must have a unique name.
     -->
-    <persistence-unit name="universityPU">
+    <persistence-unit name="entitytemplatePU">
         
         <!-- 
-            A persistent unit has persistent (mapped) classes, you list them here.
+            Hibernate will scan your classpath for mapped classes and add them automatically
+            to your persistence unit.
+             <exclude-unlisted-classes>false</exclude-unlisted-classes>
         -->
-        <class>REPLACE_PACKAGE_NAME.University</class>
+        <exclude-unlisted-classes>false</exclude-unlisted-classes>
         
         <!-- 
-            Hibernate can scan your classpath for mapped classes and add them automatically
-            to your persistence unit. This setting disables that feature.
+            Disabling the previous option "exclude-unlisted-classes" requires entity classes to
+            be listed explicitely. You may want to uncomment the following definition.
+
+            <class>${package}.Airline</class>
         -->
-        <exclude-unlisted-classes>true</exclude-unlisted-classes>
         
         <!-- 
             Standard or vendor-specific options can be set as properties on a persistence unit.
@@ -52,9 +58,9 @@
             <property name="hibernate.format_sql" value="true"/>
             <property name="hibernate.use_sql_comments" value="true"/>
             
-            <!-- Disable Hibernate scanning completely, we also don't want any hbm.xml files
-                 discovered and added automatically. -->
-            <property name="hibernate.archive.autodetection" value="none"/>
+            <!-- Enable Hibernate scanning for entity classes and adding them automatically
+                but not for hbm.xml files. -->
+            <property name="hibernate.archive.autodetection" value="class"/>
 
         </properties>
     </persistence-unit>
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
index 5959c70eac27969a2cb6750459e5f0af91285039..256fe35c11bad0ce1485d663e003a47ad3e61455 100644
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
@@ -11,7 +11,7 @@
     <Loggers>
 
         <!-- You my want to define class or package level per-logger rules -->
-        <Logger name="${package}.App" level="debug">
+        <Logger name="de.hdm_stuttgart.mi.sda2.q.App" level="debug">
             <AppenderRef ref="A1"/>
         </Logger>
         <Root level="info">
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/AppTest.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/AppTest.java
deleted file mode 100644
index e158e33c7d5ba5cec1f55aade2ee49fbf16747ec..0000000000000000000000000000000000000000
--- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package $package;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest {
-    /**
-     * Dummy test method
-     */
-    @Test
-    public void testApp() {
-        Assert.assertTrue( true );
-    }
-}
diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/EntityTest.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/EntityTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..6ef1849c6110efd676d993f209ee488fc582f6fb
--- /dev/null
+++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/test/java/EntityTest.java
@@ -0,0 +1,51 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package};
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import ${package}.model.Airline;
+
+/**
+ * Creating a database entity and testing successful reload by primary key
+ */
+public class EntityTest {
+    /**
+     * Dummy test method
+     */
+    @Test
+    public void testApp() {
+       final EntityManagerFactory factory = Persistence.createEntityManagerFactory(CreateEntity.PERSISTENCE_UNIT_NAME);
+       final EntityManager em = factory.createEntityManager();
+       
+       Long id;
+
+       final String airlineName = "Lufthansa",
+             icaoCode = "DLH";
+       em.getTransaction().begin(); // Creating and storing an entity
+       {
+          final Airline lh = new Airline(airlineName, icaoCode);
+          
+          em.persist(lh);
+          id = lh.getId();
+       }
+       em.getTransaction().commit();
+       
+       em.getTransaction().begin(); // Reloading the entity by its primary key
+       {
+          final Airline readLh = em.find(Airline.class, id);
+          Assert.assertEquals(airlineName, readLh.getName());
+          Assert.assertEquals(icaoCode, readLh.getIcaoCode());
+       }
+       em.getTransaction().commit();
+       
+       em.close();
+       factory.close();
+    }
+}