23 lines
534 B
Scala
23 lines
534 B
Scala
package di
|
|
|
|
import com.google.inject.Provider
|
|
import com.google.inject.Inject
|
|
import jakarta.inject.Singleton
|
|
import jakarta.persistence.{EntityManager, EntityManagerFactory, Persistence}
|
|
|
|
@Singleton
|
|
class EntityManagerProvider @Inject()() extends Provider[EntityManager] {
|
|
|
|
private val emf: EntityManagerFactory = Persistence.createEntityManagerFactory("defaultPersistenceUnit")
|
|
|
|
override def get(): EntityManager = {
|
|
emf.createEntityManager()
|
|
}
|
|
|
|
def close(): Unit = {
|
|
if (emf.isOpen) {
|
|
emf.close()
|
|
}
|
|
}
|
|
}
|