У меня есть класс сущностей под названием Message:
@Entity
@Table(name = "Message")
public class Message extends DefaultEntity {
@Valid
@ManyToOne(targetEntity = User.class)
@JoinColumn(name="sender")
private User sender;
@Valid
@ManyToOne(targetEntity = User.class)
@JoinColumn(name="receiver")
private User receiver;
@NotNull
private String message;
@Enumerated(EnumType.STRING)
private MessageStatus messageStatus;
private Boolean isRead;
}
по тому, как я удалил методы получения и установки, так что это не будет так долго.
Я хочу получить списокчаты, где MessageStatus имеет значение «READ», а отправитель уникален / последний / последний (поскольку между двумя конкретными пользователями (отправителем и получателем) может быть много записей), я хочу, чтобы последняя запись вводилась в базу данных на основе созданной даты.
Я попробовал это, но я застрял, потому что я не знаю, как заставить приложение получить одного отправителя на основе созданной даты;
List<Message> findMessagesByMessageStatusAndReceiver(Enum.MessageStatus messageStatus, User Receiver);
, так что теперь у меня есть некоторая возможность сообщениясохранился в моей базе данных, как это;
{date, sender, receiver} , {2/5/7, 1, 2}, {2/6/7, 1, 2}, {2/8/7, 1, 2}, {2/9/7, 1, 2} , {2/5/7, 4, 2}, {2/5/7, 5, 2} , {2/5/7, 10, 2}, {1/5/7, 10, 2}, {2/3/7, 10, 2}
................ Мне нужна ситуация, когда я могу получить все сообщения, но с уникальной записью, когда имеется более одной записи стот же отправитель, поэтому в этой ситуации, когда у нас есть более одной записи с одинаковым идентификатором отправителя: {2/5/7, 1, 2}, {2/6/7, 1, 2}, {2/8/7, 1, 2}, {2/9/7, 1, 2} выбирается только один на основе недавней даты и добавляется в список, поэтому {2/9/7, 1, 2} выбирается, а также дляэто {2/5/7, 10, 2}, {1/5/7, 10, 2}, {2/3/7, 10, 2} это {2/5/7, 10, 2} выбрано,поэтому в конце дня мой список: {2/9/7, 1, 2}, {2/5/7, 4, 2}, {2/5/7, 5, 2}, {2/5/ 7, 10, 2}