Class JpaMapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity,​M>

    • Field Detail

      • em

        protected javax.persistence.EntityManager em
    • Constructor Detail

      • JpaMapKeycloakTransaction

        public JpaMapKeycloakTransaction​(KeycloakSession session,
                                         Class<RE> entityType,
                                         Class<M> modelType,
                                         javax.persistence.EntityManager em)
    • Method Detail

      • selectCbConstruct

        protected abstract javax.persistence.criteria.Selection<? extends RE> selectCbConstruct​(javax.persistence.criteria.CriteriaBuilder cb,
                                                                                                javax.persistence.criteria.Root<RE> root)
      • setEntityVersion

        protected abstract void setEntityVersion​(JpaRootEntity entity)
      • mapToEntityDelegate

        protected abstract E mapToEntityDelegate​(RE original)
      • mapToEntityDelegateUnique

        protected E mapToEntityDelegateUnique​(RE original)
        Use the cache within the session to ensure that there is only one instance per entity within the current session.
      • create

        public E create​(E mapEntity)
        Description copied from interface: MapKeycloakTransaction
        Instructs this transaction to add a new value into the underlying store on commit.

        Updates to the returned instances of V would be visible in the current transaction and will propagate into the underlying store upon commit. The ID of the entity passed in the parameter might change to a different value in the returned value if the underlying storage decided this was necessary. If the ID of the entity was null before, it will be set on the returned value.

        Specified by:
        create in interface MapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity>
        Parameters:
        mapEntity - the value
        Returns:
        Entity representing the value in the store. It may or may not be the same instance as value.
      • read

        public E read​(String key)
        Description copied from interface: MapKeycloakTransaction
        Provides possibility to lookup for values by a key in the underlying store with respect to changes done in current transaction. Updates to the returned instance would be visible in the current transaction and will propagate into the underlying store upon commit. If V implements ExpirableEntity this method should not return entities that are expired. See ExpirableEntity JavaDoc for more details.
        Specified by:
        read in interface MapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity>
        Parameters:
        key - identifier of a value
        Returns:
        a value associated with the given key
      • clearQueryCache

        public static void clearQueryCache​(org.hibernate.Session session)
      • getCount

        public long getCount​(QueryParameters<M> queryParameters)
        Description copied from interface: MapKeycloakTransaction
        Returns a number of values present in the underlying storage that fulfill the given criteria with respect to changes done in the current transaction.
        Specified by:
        getCount in interface MapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity>
        Parameters:
        queryParameters - parameters for the query like firstResult, maxResult, requested ordering, etc.
        Returns:
        number of values present in the storage that fulfill the given criteria
      • delete

        public boolean delete​(String key)
        Description copied from interface: MapKeycloakTransaction
        Instructs this transaction to delete a value associated with the identifier key from the underlying store on commit.
        Specified by:
        delete in interface MapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity>
        Parameters:
        key - identifier of a value
        Returns:
        Returns true if the object has been deleted or result cannot be determined, false otherwise.
      • removeFromCache

        protected void removeFromCache​(String key)
      • delete

        public long delete​(QueryParameters<M> queryParameters)
        Description copied from interface: MapKeycloakTransaction
        Instructs this transaction to remove values (identified by mcb filter) from the underlying store on commit.
        Specified by:
        delete in interface MapKeycloakTransaction<RE extends JpaRootEntity,​E extends AbstractEntity>
        Parameters:
        queryParameters - parameters for the query like firstResult, maxResult, requested ordering, etc.
        Returns:
        number of removed objects (might return -1 if not supported)