package org.ros.chatto.repository; import java.util.Date; import java.util.List; import org.ros.chatto.model.ChatMessage; import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @Repository public interface ChatMessageRepository extends JpaRepository { @Query("select m from ChatMessage m join fetch m.messageCipher mc join fetch m.toUser tu join fetch m.fromUser fu " + "where (tu.userName = ?1 or tu.userName = ?2) and " + "(fu.userName = ?1 or fu.userName = ?2) order by m.messageTime asc") public List getAllMessages(String fromUser, String toUser); @Query("select m from ChatMessage m join fetch m.messageCipher mc join fetch m.toUser tu join fetch m.fromUser fu " + "where (tu.userName = ?1 or tu.userName = ?2) and " + "(fu.userName = ?1 or fu.userName = ?2) and (m.messageTime > ?3) order by m.messageTime asc") public List getNewMessages(String fromUser, String toUser, Date lastMessageTime); @Query("select m from ChatMessage m join fetch m.messageCipher mc join fetch m.toUser tu join fetch m.fromUser fu " + "where (tu.userName = ?1 or tu.userName = ?2) and " + "(fu.userName = ?1 or fu.userName = ?2) order by m.messageTime desc") public List getAllMessages(String fromUser, String toUser, PageRequest pageRequest); }