From 476db288216ed2c1013fe3ddb9b82472254e352b Mon Sep 17 00:00:00 2001 From: Janis Date: Tue, 20 Jan 2026 15:14:04 +0100 Subject: [PATCH] feat: Enhance EntityManagerProvider to use Play configuration for database settings --- .../app/di/EntityManagerProvider.scala | 16 ++++++++++++++-- knockoutwhistweb/conf/META-INF/persistence.xml | 8 ++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/knockoutwhistweb/app/di/EntityManagerProvider.scala b/knockoutwhistweb/app/di/EntityManagerProvider.scala index 9b86bb1..4a360ce 100644 --- a/knockoutwhistweb/app/di/EntityManagerProvider.scala +++ b/knockoutwhistweb/app/di/EntityManagerProvider.scala @@ -2,13 +2,25 @@ package di import com.google.inject.Provider import com.google.inject.Inject +import play.api.Configuration import jakarta.inject.Singleton import jakarta.persistence.{EntityManager, EntityManagerFactory, Persistence} @Singleton -class EntityManagerProvider @Inject()() extends Provider[EntityManager] { +class EntityManagerProvider @Inject()(config: Configuration) extends Provider[EntityManager] { - private val emf: EntityManagerFactory = Persistence.createEntityManagerFactory("defaultPersistenceUnit") + private val emf: EntityManagerFactory = { + val dbConfig = config.get[Configuration]("db.default") + val props = new java.util.HashMap[String, Object]() + + // Map Play configuration to Jakarta Persistence properties + props.put("jakarta.persistence.jdbc.driver", dbConfig.get[String]("driver")) + props.put("jakarta.persistence.jdbc.url", dbConfig.get[String]("url")) + props.put("jakarta.persistence.jdbc.user", dbConfig.get[String]("username")) + props.put("jakarta.persistence.jdbc.password", dbConfig.get[String]("password")) + + Persistence.createEntityManagerFactory("defaultPersistenceUnit", props) + } override def get(): EntityManager = { emf.createEntityManager() diff --git a/knockoutwhistweb/conf/META-INF/persistence.xml b/knockoutwhistweb/conf/META-INF/persistence.xml index cbe047a..de56d10 100644 --- a/knockoutwhistweb/conf/META-INF/persistence.xml +++ b/knockoutwhistweb/conf/META-INF/persistence.xml @@ -9,11 +9,11 @@ org.hibernate.jpa.HibernatePersistenceProvider - + - - - + + +