Package play.db.jpa

Class DefaultJPAApi

  • All Implemented Interfaces:
    JPAApi

    public class DefaultJPAApi
    extends Object
    implements JPAApi
    Default implementation of the JPA API.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      jakarta.persistence.EntityManager em​(String name)
      Get a newly created EntityManager for the specified persistence unit name.
      void shutdown()
      Close all entity manager factories.
      JPAApi start()
      Initialise JPA entity manager factories.
      void withTransaction​(String name, boolean readOnly, Consumer<jakarta.persistence.EntityManager> block)
      Run a block of code with a newly created EntityManager for the named Persistence Unit.
      <T> T withTransaction​(String name, boolean readOnly, Function<jakarta.persistence.EntityManager,​T> block)
      Run a block of code with a newly created EntityManager for the named Persistence Unit.
      void withTransaction​(String name, Consumer<jakarta.persistence.EntityManager> block)
      Run a block of code with a newly created EntityManager for the named Persistence Unit.
      <T> T withTransaction​(String name, Function<jakarta.persistence.EntityManager,​T> block)
      Run a block of code with a newly created EntityManager for the named Persistence Unit.
      void withTransaction​(Consumer<jakarta.persistence.EntityManager> block)
      Run a block of code with a newly created EntityManager for the default Persistence Unit.
      <T> T withTransaction​(Function<jakarta.persistence.EntityManager,​T> block)
      Run a block of code with a newly created EntityManager for the default Persistence Unit.
    • Constructor Detail

      • DefaultJPAApi

        public DefaultJPAApi​(JPAConfig jpaConfig)
    • Method Detail

      • start

        public JPAApi start()
        Initialise JPA entity manager factories.
        Specified by:
        start in interface JPAApi
        Returns:
        JPAApi instance
      • em

        public jakarta.persistence.EntityManager em​(String name)
        Get a newly created EntityManager for the specified persistence unit name.
        Specified by:
        em in interface JPAApi
        Parameters:
        name - The persistence unit name
        Returns:
        EntityManager for the specified persistence unit name
      • withTransaction

        public <T> T withTransaction​(Function<jakarta.persistence.EntityManager,​T> block)
        Run a block of code with a newly created EntityManager for the default Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Type Parameters:
        T - type of result
        Parameters:
        block - Block of code to execute
        Returns:
        code execution result
      • withTransaction

        public void withTransaction​(Consumer<jakarta.persistence.EntityManager> block)
        Run a block of code with a newly created EntityManager for the default Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Parameters:
        block - Block of code to execute
      • withTransaction

        public <T> T withTransaction​(String name,
                                     Function<jakarta.persistence.EntityManager,​T> block)
        Run a block of code with a newly created EntityManager for the named Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Type Parameters:
        T - type of result
        Parameters:
        name - The persistence unit name
        block - Block of code to execute
        Returns:
        code execution result
      • withTransaction

        public void withTransaction​(String name,
                                    Consumer<jakarta.persistence.EntityManager> block)
        Run a block of code with a newly created EntityManager for the named Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Parameters:
        name - The persistence unit name
        block - Block of code to execute
      • withTransaction

        public <T> T withTransaction​(String name,
                                     boolean readOnly,
                                     Function<jakarta.persistence.EntityManager,​T> block)
        Run a block of code with a newly created EntityManager for the named Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Type Parameters:
        T - type of result
        Parameters:
        name - The persistence unit name
        readOnly - Is the transaction read-only?
        block - Block of code to execute
        Returns:
        code execution result
      • withTransaction

        public void withTransaction​(String name,
                                    boolean readOnly,
                                    Consumer<jakarta.persistence.EntityManager> block)
        Run a block of code with a newly created EntityManager for the named Persistence Unit.
        Specified by:
        withTransaction in interface JPAApi
        Parameters:
        name - The persistence unit name
        readOnly - Is the transaction read-only?
        block - Block of code to execute
      • shutdown

        public void shutdown()
        Close all entity manager factories.
        Specified by:
        shutdown in interface JPAApi