Bonjour.

Mon projet actuel requiert que je transforme une liste d'objet provenant d'un DB en objet modèle.
Les objets ressemblent à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
class DbMessage {
    private String user1Id;
    private String user2Id;
    private String message;
    private Custom status; //pending, sent, read, not received…}
 
class MessageModel {
    private String user1Id;
    private String user2Id;
    private List<MessageWithMetadata> messages;
}
L'idée serait de transformer cet objet :
Code json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
[
    {user1Id: 'user1', user2Id: 'user2', message: 'hello world', status: 'sent'},
    {user1Id: 'user1', user2Id: 'user2', message: 'how are you?', status: 'sent'},
    {user1Id: 'user1', user2Id: 'user3', message: 'sent a photo', status: 'sent'}
]

en cet objet :
Code json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
[
    {user1Id: 'user1', user2Id: 'user2', messages: [
        {message: 'hello world', status: 'sent'},
        {message: 'how are you?', status: 'sent'}
    ]},
    {user1Id: 'user1', user2Id: 'user3', messages: [
        {message: 'sent a photo', status: 'sent'}
    ]}
]

Je vois que passer par les stream est la solution, mais je ne maîtrise pas du tout la chose.
J'ai pu écrire ça messagesRepository.findByUserId(userId).stream().collect(Collectors.groupingBy(DbMessage::getUser1Id));, ça me retourne un objet Map<String, List<DbMessage>> que j'aimerais transformer en List<MessageModel>.

Je cherche des conseils pour y arriver et pour progresser.