From d8eb705143b8ef66e4e400ec1db5e5c95fa929dd Mon Sep 17 00:00:00 2001 From: lipido Date: Fri, 17 Nov 2017 10:56:25 +0100 Subject: [PATCH] Updates Hibernate to version 5.2.3 With this version: - There is no need to declare your entities in elements in persistence.xml. - You can open and close an entitymanagerfactory in each test class without hangs between test classes. --- pom.xml | 4 +-- src/main/resources/META-INF/persistence.xml | 4 --- .../persistence/DepartmentsTest.java | 9 +------ .../siexample/persistence/EmployeesTest.java | 8 +----- .../siexample/persistence/SQLBasedTest.java | 25 ++++++++++++++++++- src/test/resources/META-INF/persistence.xml | 5 ---- 6 files changed, 28 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 8bcb8c9..07dc1cd 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ org.hibernate hibernate-entitymanager - 4.1.8.Final + 5.2.3.Final @@ -38,7 +38,7 @@ org.hibernate hibernate-validator - 5.0.1.Final + 5.2.3.Final javax.el diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index febc7c6..f00d5a1 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -3,10 +3,6 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> - dgpena.siexample.persistence.Department - dgpena.siexample.persistence.Employee - dgpena.siexample.persistence.Project - dgpena.siexample.persistence.ProjectAssignment diff --git a/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java b/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java index d9d411a..fc2a628 100644 --- a/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java +++ b/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java @@ -15,19 +15,12 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class DepartmentsTest extends SQLBasedTest { - private static EntityManagerFactory emf; - - @BeforeClass - public static void setUpEntityManagerFactory() { - emf = Persistence.createEntityManagerFactory("si-database"); - } - - @Test public void testAddNewDepartment() throws Exception { diff --git a/src/test/java/dgpena/siexample/persistence/EmployeesTest.java b/src/test/java/dgpena/siexample/persistence/EmployeesTest.java index 3256abd..a1a5d31 100644 --- a/src/test/java/dgpena/siexample/persistence/EmployeesTest.java +++ b/src/test/java/dgpena/siexample/persistence/EmployeesTest.java @@ -10,18 +10,12 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class EmployeesTest extends SQLBasedTest { -private static EntityManagerFactory emf; - - @BeforeClass - public static void setUpEntityManagerFactory() { - emf = Persistence.createEntityManagerFactory("si-database"); - } - @Test public void testAddNewEmployee() throws SQLException { // insert a department previously with JDBC diff --git a/src/test/java/dgpena/siexample/persistence/SQLBasedTest.java b/src/test/java/dgpena/siexample/persistence/SQLBasedTest.java index a23b400..537a55b 100644 --- a/src/test/java/dgpena/siexample/persistence/SQLBasedTest.java +++ b/src/test/java/dgpena/siexample/persistence/SQLBasedTest.java @@ -6,13 +6,20 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import org.junit.AfterClass; +import org.junit.BeforeClass; + public class SQLBasedTest { private static final String DB_URL = "jdbc:mysql://localhost:3306/si"; private static final String DB_USER = "siuser"; private static final String DB_PASS = "sipass"; protected static Connection jdbcConnection = createConnection(); - + + private static Connection createConnection() { try { Class.forName("com.mysql.jdbc.Driver"); @@ -29,4 +36,20 @@ public class SQLBasedTest { return rs.getInt(1); } + + // EntityManagerFactory management + protected static EntityManagerFactory emf; + + @BeforeClass + public static void setUpEntityManagerFactory() { + emf = Persistence.createEntityManagerFactory("si-database"); + } + + @AfterClass + public static void closeEntityManagerFactory() throws SQLException { + if (emf != null && emf.isOpen()) { + emf.close(); + } + } + } diff --git a/src/test/resources/META-INF/persistence.xml b/src/test/resources/META-INF/persistence.xml index 5f876e7..f00d5a1 100644 --- a/src/test/resources/META-INF/persistence.xml +++ b/src/test/resources/META-INF/persistence.xml @@ -3,11 +3,6 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> - dgpena.siexample.persistence.Department - dgpena.siexample.persistence.Employee - dgpena.siexample.persistence.Project - dgpena.siexample.persistence.ProjectAssignment - -- 2.18.1