Class HibernateSpaceDao

    • Field Detail

    • Constructor Detail

      • HibernateSpaceDao

        public HibernateSpaceDao()
    • Method Detail

      • getById

        public @Nullable Space getById​(long id)
        Specified by:
        getById in interface SpaceDao
      • getSpace

        public @Nullable Space getSpace​(@Nullable String spaceKey)
        first tries to fetch the space from the cache by space id if not, fetch it from database
        Specified by:
        getSpace in interface SpaceDao
      • getPersonalSpace

        public @Nullable Space getPersonalSpace​(@Nullable ConfluenceUser user)
        Specified by:
        getPersonalSpace in interface SpaceDao
        Parameters:
        user - the user who's personal space is to be retrieved
        Returns:
        the personal space for the specified user or null if none exists
      • getSpacesContainingPagesEditedByUser

        public @NonNull List<Space> getSpacesContainingPagesEditedByUser​(@Nullable String username)
        Description copied from interface: SpaceDao
        Find all spaces containing pages that were edited by a particular user. This is for tracking down whether a user can be safely deleted or not.
        Specified by:
        getSpacesContainingPagesEditedByUser in interface SpaceDao
        Parameters:
        username - the name of the user to track down
        Returns:
        a list of the spaces containing pages that were edited by this user, or the empty list if no such spaces exist.
      • getSpacesContainingCommentsByUser

        public @NonNull List<Space> getSpacesContainingCommentsByUser​(@Nullable String username)
        Description copied from interface: SpaceDao
        Find all spaces containing comments by a particular user. This is for tracking down whether a user can be safely deleted or not.

        Does currently not include personal spaces, but probably should.

        Specified by:
        getSpacesContainingCommentsByUser in interface SpaceDao
        Parameters:
        username - the name of the user to track down
        Returns:
        a list of the spaces containing comments by this user, or the empty list if no such spaces exist.
      • findPageTotal

        public int findPageTotal​(Space space)
        Description copied from interface: SpaceDao
        Fast way to count pages in a space without loading them. Counts all pages, not just the current versions.
        Specified by:
        findPageTotal in interface SpaceDao
        Returns:
        returns the number of all versions of all pages in a space
      • remove

        public void remove​(com.atlassian.core.bean.EntityObject entity)
        Override the parent remove method as we want to remove the object out of the cache as well
        Specified by:
        remove in interface ObjectDao
        Specified by:
        remove in interface ObjectDaoInternal<Space>
        Overrides:
        remove in class HibernateObjectDao<Space>
        Parameters:
        entity - the object to remove
      • getNumberOfBlogPosts

        public int getNumberOfBlogPosts​(Space space)
        Description copied from interface: SpaceDao
        Fast way to count blog posts in a space without loading them. Counts all blog posts, not just the current versions.
        Specified by:
        getNumberOfBlogPosts in interface SpaceDao
        Returns:
        returns the number of all versions of all blog posts in a space
      • getSpaceByContentId

        public @Nullable Space getSpaceByContentId​(long contentId)
        Description copied from interface: SpaceDao
        Get the space that some content belongs to in a single db query. This will only work for content that directly belongs to a space (i.e. Pages, Blog Posts, Space Descriptions but not Comments or Attachments) and it will only work for current content (old content is dissassociated from its space)
        Specified by:
        getSpaceByContentId in interface SpaceDao
        Parameters:
        contentId - the ID of the content
        Returns:
        the space that content belongs to
      • findSpaceKeysWithStatus

        public @NonNull Collection<String> findSpaceKeysWithStatus​(String status)
        Description copied from interface: SpaceDao
        find all space keys where the space status is equal to the given status.
        Specified by:
        findSpaceKeysWithStatus in interface SpaceDao
        Parameters:
        status - the status to search for
        Returns:
        all space keys of spaces that match that status
      • findUniqueVersionOfSpaceKey

        public @NonNull String findUniqueVersionOfSpaceKey​(String spaceKey)
        Description copied from interface: SpaceDao
        Return a unique version of the supplied spaceKey. This is done by checking the database for a duplicate and following the algorithm of counting up until a duplicate is achieved e.g. spaceKey_1, spaceKey_2, etc.
        Specified by:
        findUniqueVersionOfSpaceKey in interface SpaceDao
        Parameters:
        spaceKey - the space key to create a unique version of
        Returns:
        the unique space key
      • performOnAll

        public void performOnAll​(Consumer<Space> task)
        Description copied from interface: SpaceDao
        Perform the task with all spaces.
        Specified by:
        performOnAll in interface SpaceDao
        Parameters:
        task - apply to spaces.
      • findSpaceIdListWithIdGreaterOrEqual

        public List<Long> findSpaceIdListWithIdGreaterOrEqual​(Long startingId,
                                                              int limit)
        Retrieves a limited space list starting with a particular space id. It's used when we want to scan all spaces, but do this within a set small transactions.
        Specified by:
        findSpaceIdListWithIdGreaterOrEqual in interface SpaceDaoInternal
        Parameters:
        startingId - - space id
        limit - - limit
        Returns:
        list of space ids
        Since:
        7.10.0