Class UnsynchronizedEntityManagerWrapper

java.lang.Object
org.jboss.as.jpa.container.UnsynchronizedEntityManagerWrapper
All Implemented Interfaces:
jakarta.persistence.EntityManager, AutoCloseable, SynchronizationTypeAccess

public class UnsynchronizedEntityManagerWrapper extends Object implements jakarta.persistence.EntityManager, SynchronizationTypeAccess
UnsynchronizedEntityManagerWrapper helps track transaction scoped persistence contexts that are SynchronizationType.UNSYNCHRONIZED, for error checking. If an SynchronizationType.SYNCHRONIZED transaction scoped persistence context is accessed while there is already an SynchronizationType.UNSYNCHRONIZED (with the same pu name + in active Jakarta Transactions TX), an IllegalStateException needs to be thrown as per the JPA 2.1 spec (see 7.6.4.1 Requirements for Persistence Context Propagation).
Author:
Scott Marlow
  • Constructor Details

    • UnsynchronizedEntityManagerWrapper

      public UnsynchronizedEntityManagerWrapper(jakarta.persistence.EntityManager entityManager)
  • Method Details

    • getSynchronizationType

      public jakarta.persistence.SynchronizationType getSynchronizationType()
      Specified by:
      getSynchronizationType in interface SynchronizationTypeAccess
    • clear

      public void clear()
      Specified by:
      clear in interface jakarta.persistence.EntityManager
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface jakarta.persistence.EntityManager
    • contains

      public boolean contains(Object entity)
      Specified by:
      contains in interface jakarta.persistence.EntityManager
    • createEntityGraph

      public jakarta.persistence.EntityGraph<?> createEntityGraph(String graphName)
      Specified by:
      createEntityGraph in interface jakarta.persistence.EntityManager
    • createEntityGraph

      public <T> jakarta.persistence.EntityGraph<T> createEntityGraph(Class<T> rootType)
      Specified by:
      createEntityGraph in interface jakarta.persistence.EntityManager
    • createNamedQuery

      public jakarta.persistence.Query createNamedQuery(String name)
      Specified by:
      createNamedQuery in interface jakarta.persistence.EntityManager
    • createNamedQuery

      public <T> jakarta.persistence.TypedQuery<T> createNamedQuery(String name, Class<T> resultClass)
      Specified by:
      createNamedQuery in interface jakarta.persistence.EntityManager
    • createNamedStoredProcedureQuery

      public jakarta.persistence.StoredProcedureQuery createNamedStoredProcedureQuery(String name)
      Specified by:
      createNamedStoredProcedureQuery in interface jakarta.persistence.EntityManager
    • createNativeQuery

      public jakarta.persistence.Query createNativeQuery(String sqlString)
      Specified by:
      createNativeQuery in interface jakarta.persistence.EntityManager
    • createNativeQuery

      public jakarta.persistence.Query createNativeQuery(String sqlString, Class resultClass)
      Specified by:
      createNativeQuery in interface jakarta.persistence.EntityManager
    • createNativeQuery

      public jakarta.persistence.Query createNativeQuery(String sqlString, String resultSetMapping)
      Specified by:
      createNativeQuery in interface jakarta.persistence.EntityManager
    • createQuery

      public <T> jakarta.persistence.TypedQuery<T> createQuery(jakarta.persistence.criteria.CriteriaQuery<T> criteriaQuery)
      Specified by:
      createQuery in interface jakarta.persistence.EntityManager
    • createQuery

      public jakarta.persistence.Query createQuery(jakarta.persistence.criteria.CriteriaDelete deleteQuery)
      Specified by:
      createQuery in interface jakarta.persistence.EntityManager
    • createQuery

      public jakarta.persistence.Query createQuery(String qlString)
      Specified by:
      createQuery in interface jakarta.persistence.EntityManager
    • createQuery

      public <T> jakarta.persistence.TypedQuery<T> createQuery(String qlString, Class<T> resultClass)
      Specified by:
      createQuery in interface jakarta.persistence.EntityManager
    • createQuery

      public jakarta.persistence.Query createQuery(jakarta.persistence.criteria.CriteriaUpdate updateQuery)
      Specified by:
      createQuery in interface jakarta.persistence.EntityManager
    • createStoredProcedureQuery

      public jakarta.persistence.StoredProcedureQuery createStoredProcedureQuery(String procedureName)
      Specified by:
      createStoredProcedureQuery in interface jakarta.persistence.EntityManager
    • createStoredProcedureQuery

      public jakarta.persistence.StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class... resultClasses)
      Specified by:
      createStoredProcedureQuery in interface jakarta.persistence.EntityManager
    • createStoredProcedureQuery

      public jakarta.persistence.StoredProcedureQuery createStoredProcedureQuery(String procedureName, String... resultSetMappings)
      Specified by:
      createStoredProcedureQuery in interface jakarta.persistence.EntityManager
    • detach

      public void detach(Object entity)
      Specified by:
      detach in interface jakarta.persistence.EntityManager
    • find

      public <T> T find(Class<T> entityClass, Object primaryKey)
      Specified by:
      find in interface jakarta.persistence.EntityManager
    • find

      public <T> T find(Class<T> entityClass, Object primaryKey, jakarta.persistence.LockModeType lockMode)
      Specified by:
      find in interface jakarta.persistence.EntityManager
    • find

      public <T> T find(Class<T> entityClass, Object primaryKey, jakarta.persistence.LockModeType lockMode, Map<String,Object> properties)
      Specified by:
      find in interface jakarta.persistence.EntityManager
    • find

      public <T> T find(Class<T> entityClass, Object primaryKey, Map<String,Object> properties)
      Specified by:
      find in interface jakarta.persistence.EntityManager
    • flush

      public void flush()
      Specified by:
      flush in interface jakarta.persistence.EntityManager
    • getCriteriaBuilder

      public jakarta.persistence.criteria.CriteriaBuilder getCriteriaBuilder()
      Specified by:
      getCriteriaBuilder in interface jakarta.persistence.EntityManager
    • getDelegate

      public Object getDelegate()
      Specified by:
      getDelegate in interface jakarta.persistence.EntityManager
    • getEntityGraph

      public jakarta.persistence.EntityGraph<?> getEntityGraph(String graphName)
      Specified by:
      getEntityGraph in interface jakarta.persistence.EntityManager
    • getEntityGraphs

      public <T> List<jakarta.persistence.EntityGraph<? super T>> getEntityGraphs(Class<T> entityClass)
      Specified by:
      getEntityGraphs in interface jakarta.persistence.EntityManager
    • getEntityManagerFactory

      public jakarta.persistence.EntityManagerFactory getEntityManagerFactory()
      Specified by:
      getEntityManagerFactory in interface jakarta.persistence.EntityManager
    • getFlushMode

      public jakarta.persistence.FlushModeType getFlushMode()
      Specified by:
      getFlushMode in interface jakarta.persistence.EntityManager
    • getLockMode

      public jakarta.persistence.LockModeType getLockMode(Object entity)
      Specified by:
      getLockMode in interface jakarta.persistence.EntityManager
    • getMetamodel

      public jakarta.persistence.metamodel.Metamodel getMetamodel()
      Specified by:
      getMetamodel in interface jakarta.persistence.EntityManager
    • getProperties

      public Map<String,Object> getProperties()
      Specified by:
      getProperties in interface jakarta.persistence.EntityManager
    • getReference

      public <T> T getReference(Class<T> entityClass, Object primaryKey)
      Specified by:
      getReference in interface jakarta.persistence.EntityManager
    • getTransaction

      public jakarta.persistence.EntityTransaction getTransaction()
      Specified by:
      getTransaction in interface jakarta.persistence.EntityManager
    • isJoinedToTransaction

      public boolean isJoinedToTransaction()
      Specified by:
      isJoinedToTransaction in interface jakarta.persistence.EntityManager
    • isOpen

      public boolean isOpen()
      Specified by:
      isOpen in interface jakarta.persistence.EntityManager
    • joinTransaction

      public void joinTransaction()
      Specified by:
      joinTransaction in interface jakarta.persistence.EntityManager
    • lock

      public void lock(Object entity, jakarta.persistence.LockModeType lockMode)
      Specified by:
      lock in interface jakarta.persistence.EntityManager
    • lock

      public void lock(Object entity, jakarta.persistence.LockModeType lockMode, Map<String,Object> properties)
      Specified by:
      lock in interface jakarta.persistence.EntityManager
    • merge

      public <T> T merge(T entity)
      Specified by:
      merge in interface jakarta.persistence.EntityManager
    • persist

      public void persist(Object entity)
      Specified by:
      persist in interface jakarta.persistence.EntityManager
    • refresh

      public void refresh(Object entity)
      Specified by:
      refresh in interface jakarta.persistence.EntityManager
    • refresh

      public void refresh(Object entity, jakarta.persistence.LockModeType lockMode)
      Specified by:
      refresh in interface jakarta.persistence.EntityManager
    • refresh

      public void refresh(Object entity, jakarta.persistence.LockModeType lockMode, Map<String,Object> properties)
      Specified by:
      refresh in interface jakarta.persistence.EntityManager
    • refresh

      public void refresh(Object entity, Map<String,Object> properties)
      Specified by:
      refresh in interface jakarta.persistence.EntityManager
    • remove

      public void remove(Object entity)
      Specified by:
      remove in interface jakarta.persistence.EntityManager
    • setFlushMode

      public void setFlushMode(jakarta.persistence.FlushModeType flushMode)
      Specified by:
      setFlushMode in interface jakarta.persistence.EntityManager
    • setProperty

      public void setProperty(String propertyName, Object value)
      Specified by:
      setProperty in interface jakarta.persistence.EntityManager
    • unwrap

      public <T> T unwrap(Class<T> cls)
      Specified by:
      unwrap in interface jakarta.persistence.EntityManager