MessageDAO.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package nju.seec.helper.dao;
  2. import nju.seec.helper.entity.Message;
  3. import org.springframework.data.domain.Page;
  4. import org.springframework.data.domain.Pageable;
  5. import org.springframework.data.jpa.repository.JpaRepository;
  6. import org.springframework.data.jpa.repository.Modifying;
  7. import org.springframework.data.jpa.repository.Query;
  8. import org.springframework.stereotype.Repository;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import java.util.Set;
  11. /**
  12. * @author cst
  13. */
  14. @Repository
  15. public interface MessageDAO extends JpaRepository<Message, Long> {
  16. /**
  17. * 更新消息已读
  18. *
  19. * @param toUserId
  20. * @param messageIds
  21. */
  22. @Transactional(rollbackFor = Exception.class)
  23. @Modifying
  24. @Query("update Message m " +
  25. "set m.read=true " +
  26. "where m.toUserId=?1 " +
  27. "and m.id in ?2 ")
  28. void updateRead(Long toUserId, Set<Long> messageIds);
  29. /**
  30. * 删除消息
  31. *
  32. * @param toUserId
  33. * @param messageIds
  34. */
  35. void deleteByToUserIdAndIdIn(Long toUserId, Set<Long> messageIds);
  36. /**
  37. * 获取消息
  38. *
  39. * @param toUserId
  40. * @param read
  41. * @param key
  42. * @param pageable
  43. * @return
  44. */
  45. Page<Message> findByToUserIdAndReadAndContentContains(Long toUserId, Boolean read, String key, Pageable pageable);
  46. // /**
  47. // * 基于关联数据删除
  48. // *
  49. // * @param refId
  50. // * @param messageType
  51. // */
  52. // void deleteByRefIdAndType(Long refId, MessageType messageType);
  53. }