Interface DigestItemDAO

All Superinterfaces:
org.springframework.data.repository.CrudRepository<DigestItemEntity,Long>, org.springframework.data.jpa.repository.JpaRepository<DigestItemEntity,Long>, org.springframework.data.repository.ListCrudRepository<DigestItemEntity,Long>, org.springframework.data.repository.ListPagingAndSortingRepository<DigestItemEntity,Long>, org.springframework.data.repository.PagingAndSortingRepository<DigestItemEntity,Long>, org.springframework.data.repository.query.QueryByExampleExecutor<DigestItemEntity>, org.springframework.data.repository.Repository<DigestItemEntity,Long>

@Repository public interface DigestItemDAO extends org.springframework.data.jpa.repository.JpaRepository<DigestItemEntity,Long>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
    static final String
     
    static final String
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Every waiting item of one user, when the user leaves the digest for good
    int
    deleteCovered(String userId, Instant until)
    Deletes the items every enabled frequency of the recipient has covered
    int
    Safety cleanup: items older than the retention, whatever happened
    int
    Safety cleanup: items of users who have no digest enabled any more
    The items of one digest occurrence: what the recipient received after the previous watermark and up to the claim moment, most recent first
    findByUserIdAndPluginIdAndParamsContaining(String userId, String pluginId, String paramsFragment)
    The waiting items of a recipient about one object, matched on a parameter
    The waiting items of these recipients about the very same notification (same type, same parameters): one query for every recipient, at capture

    Methods inherited from interface org.springframework.data.repository.CrudRepository

    count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlush

    Methods inherited from interface org.springframework.data.repository.ListCrudRepository

    findAll, findAllById, saveAll

    Methods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findBy, findOne
  • Field Details

  • Method Details

    • findByUserIdInAndPluginIdAndParams

      List<DigestItemEntity> findByUserIdInAndPluginIdAndParams(Collection<String> userIds, String pluginId, String params)
      The waiting items of these recipients about the very same notification (same type, same parameters): one query for every recipient, at capture
    • findByUserIdAndPluginIdAndParamsContaining

      List<DigestItemEntity> findByUserIdAndPluginIdAndParamsContaining(String userId, String pluginId, String paramsFragment)
      The waiting items of a recipient about one object, matched on a parameter
    • findByUserIdAndItemDateGreaterThanAndItemDateLessThanEqualOrderByItemDateDesc

      List<DigestItemEntity> findByUserIdAndItemDateGreaterThanAndItemDateLessThanEqualOrderByItemDateDesc(String userId, Instant after, Instant until)
      The items of one digest occurrence: what the recipient received after the previous watermark and up to the claim moment, most recent first
    • deleteCovered

      @Modifying @Query("DELETE FROM DigestItem i WHERE i.userId = :userId AND i.itemDate <= :until") int deleteCovered(@Param("userId") String userId, @Param("until") Instant until)
      Deletes the items every enabled frequency of the recipient has covered
    • deleteOlderThan

      @Modifying @Query("DELETE FROM DigestItem i WHERE i.itemDate < :before") int deleteOlderThan(@Param("before") Instant before)
      Safety cleanup: items older than the retention, whatever happened
    • deleteOrphans

      @Modifying @Query("DELETE FROM DigestItem i WHERE i.userId NOT IN (SELECT u.userId FROM DigestUser u)") int deleteOrphans()
      Safety cleanup: items of users who have no digest enabled any more
    • deleteByUser

      @Modifying @Query("DELETE FROM DigestItem i WHERE i.userId = :userId") int deleteByUser(@Param("userId") String userId)
      Every waiting item of one user, when the user leaves the digest for good