Bonjour.
Mon projet actuel requiert que je transforme une liste d'objet provenant d'un DB en objet modèle.
Les objets ressemblent à ça :
L'idée serait de transformer cet objet :
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; }
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.
Partager