У меня есть следующий класс чата:
@Data
@Entity
@NoArgsConstructor
public class Chat extends BaseEntity {
@ManyToOne
@JoinColumn(name = "user1_id")
private User user1;
@ManyToOne
@JoinColumn(name = "user2_id")
private User user2;
@LazyCollection(LazyCollectionOption.EXTRA)
@OrderBy("sentAt DESC")
@OneToMany(mappedBy = "chat", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Message> messages = new ArrayList<>();
public Chat(User user1, User user2) {
this.user1 = user1;
this.user2 = user2;
}
}
В отношении поля messages
меня интересует только доступ к первому элементу, который является последним сообщением в этом случае -
Будет ли выполнение следующего оператора: chat.getMessages().get(0)
причиной инициализации всего списка messages
? Если да, то какова лучшая практика?