diff --git a/README.md b/README.md index 6d2c6a3bd9018cc0c4e10c50529b4c141b86e912..d13cfc605aee925ad1abc2be095d8c4c52126bbb 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -Vor dem Ausführen persistence.example.xml umbenennen und dort Verbindungsdaten eintragen. Das Project lädt standardmässig ein paar Testdaten, um dies zu verhindern in EntityManagerFactoryUtil die zusätzliche Property im Aufruf von Persistence.createEntityManagerFactory() entfernen. +Vor dem Ausführen persistence.example.xml umbenennen und dort Verbindungsdaten eintragen. Das Project lädt standardmäßig ein paar Testdaten, um dies zu verhindern in der persistence.xml das Property jakarta.persistence.sql-load-script-source entfernen. diff --git a/src/main/java/edu/hsh/dbs2/imdb/entity/MovieMapper.java b/src/main/java/edu/hsh/dbs2/imdb/entity/MovieMapper.java index 74dd135cec71446de7e58865ef7252e6b4132424..a779c71c5e1e51056b4f6dc47d16686646fd5a3d 100644 --- a/src/main/java/edu/hsh/dbs2/imdb/entity/MovieMapper.java +++ b/src/main/java/edu/hsh/dbs2/imdb/entity/MovieMapper.java @@ -19,7 +19,6 @@ public class MovieMapper implements Mapper<Movie, MovieDTO> { private final CharacterMapper charMapper = new CharacterMapper(); private Set<Genre> genres; - @Override public MovieDTO map(Movie movie) { if (movie == null) diff --git a/src/main/java/edu/hsh/dbs2/imdb/logic/Manager.java b/src/main/java/edu/hsh/dbs2/imdb/logic/Manager.java index 649e7d185540110780afca2aaac5667835543781..a6ab31c1115f809defe0efece6412ea4302aa0fc 100644 --- a/src/main/java/edu/hsh/dbs2/imdb/logic/Manager.java +++ b/src/main/java/edu/hsh/dbs2/imdb/logic/Manager.java @@ -23,16 +23,6 @@ public class Manager<T> { this.type = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } - protected List<T> query(BiConsumer<CriteriaBuilder, CriteriaQuery<T>> function) { - var manager = getEntityManager(); - var cb = manager.getCriteriaBuilder(); - var cq = cb.createQuery(type); - function.accept(cb, cq); - var result = manager.createQuery(cq).getResultList(); - closeEntityManager(); - return result; - } - protected EntityManager getEntityManager() { if (!localManager.get().isOpen()) closeEntityManager(); @@ -46,6 +36,16 @@ public class Manager<T> { localManager.remove(); } + protected List<T> query(BiConsumer<CriteriaBuilder, CriteriaQuery<T>> function) { + var manager = getEntityManager(); + var cb = manager.getCriteriaBuilder(); + var cq = cb.createQuery(type); + function.accept(cb, cq); + var result = manager.createQuery(cq).getResultList(); + closeEntityManager(); + return result; + } + protected void doTransaction(Consumer<EntityManager> content) { var manager = getEntityManager(); try { diff --git a/src/main/java/edu/hsh/dbs2/imdb/util/EntityManagerFactoryUtil.java b/src/main/java/edu/hsh/dbs2/imdb/util/EntityManagerFactoryUtil.java index 66846d9c2b7691d4fa5a3719ded002af74c66a5a..ea7a6b27a2135db009cf0999ae3f68307eb1fc76 100644 --- a/src/main/java/edu/hsh/dbs2/imdb/util/EntityManagerFactoryUtil.java +++ b/src/main/java/edu/hsh/dbs2/imdb/util/EntityManagerFactoryUtil.java @@ -7,7 +7,7 @@ public class EntityManagerFactoryUtil { public static EntityManagerFactory createSessionFactory() { try { - return Persistence.createEntityManagerFactory("edu.hsh.dbs2.imdb", Util.getTestDataProperty()); + return Persistence.createEntityManagerFactory("edu.hsh.dbs2.imdb"); } catch (Exception e) { System.err.println("Error while connecting to database"); e.printStackTrace(); diff --git a/src/main/java/edu/hsh/dbs2/imdb/util/Util.java b/src/main/java/edu/hsh/dbs2/imdb/util/Util.java index 655637eee2d2c64cb11e43195a86ff98c6e7037d..0056bbba2fa630d5e0305bc0d42841c4311e94ac 100644 --- a/src/main/java/edu/hsh/dbs2/imdb/util/Util.java +++ b/src/main/java/edu/hsh/dbs2/imdb/util/Util.java @@ -10,11 +10,4 @@ public class Util { public static <T> boolean isNullOrEmpty(Collection<T> coll) { return coll == null || coll.isEmpty(); } - - public static Map<String, String> getTestDataProperty() { - var properties = new HashMap<String, String>(); - properties.put("jakarta.persistence.sql-load-script-source", "src/main/resources/TestData.sql"); - return properties; - } - } diff --git a/src/main/resources/META-INF/persistence.example.xml b/src/main/resources/META-INF/persistence.example.xml index 3f3181dc6adde87370e45cb2c205dfe8c939c154..cbdc216db23d3a73d2dd5e9731c3fffe4b30a263 100644 --- a/src/main/resources/META-INF/persistence.example.xml +++ b/src/main/resources/META-INF/persistence.example.xml @@ -13,6 +13,7 @@ <property name="jakarta.persistence.schema-generation.drop-source" value="script"/> <property name="jakarta.persistence.schema-generation.create-script-source" value="src/main/resources/Schema.sql"/> <property name="jakarta.persistence.schema-generation.drop-script-source" value="src/main/resources/DropSchema.sql"/> + <property name="jakarta.persistence.sql-load-script-source" value="src/main/resources/TestData.sql"/> <property name="hibernate.check_nullability" value="true"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> </properties> diff --git a/src/test/java/edu/hsh/dbs2/imdb/TestDB.java b/src/test/java/edu/hsh/dbs2/imdb/TestDB.java index f1898bc2af1421e6b6f74cd29b6d08b9eba4016a..9fffbe20bb57a3ad83fecb06ce2df5392e37d472 100644 --- a/src/test/java/edu/hsh/dbs2/imdb/TestDB.java +++ b/src/test/java/edu/hsh/dbs2/imdb/TestDB.java @@ -7,8 +7,8 @@ import edu.hsh.dbs2.imdb.logic.ManagerFactory; import edu.hsh.dbs2.imdb.logic.MovieManager; import edu.hsh.dbs2.imdb.logic.dto.CharacterDTO; import edu.hsh.dbs2.imdb.logic.dto.MovieDTO; +import edu.hsh.dbs2.imdb.util.EntityManagerFactoryUtil; import jakarta.persistence.EntityManagerFactory; -import jakarta.persistence.Persistence; import jakarta.persistence.PersistenceException; import lombok.Cleanup; import org.junit.AfterClass; @@ -23,7 +23,7 @@ public class TestDB { @BeforeClass public static void setUp() { - sessionFactory = Persistence.createEntityManagerFactory("edu.hsh.dbs2.imdb"); + sessionFactory = EntityManagerFactoryUtil.createSessionFactory(); ManagerFactory.instance.setSessionFactory(sessionFactory); movieManager = ManagerFactory.instance.getMovieManager(); }