Je suis confronté au problème suivant. J'ai un arbre de Java pour lequel je dois exporter chaque valeur de champ dans un fichier CSV. Le résultat de l'exportation doit être similaire à ce que nous avons dans la jointure externe gauche SQL (appelée produit cartésien).Transforme un arbre d'objets java en un tableau de dimension 2
auteur classe
@DataField(pos = 1)
String firstName;
@DataField(pos = 2)
String lastName;
@OneToMany
List<Book> books;
@OneToMany
List<Editor> editors;
@DataField(pos = 7)
String Age;
classe Livre
@DataField(pos = 3)
String title;
@DataField(pos = 4)
String year;
@OneToMany
List<Reference> references;
Référence de la classe
@DataField(pos = 5)
String type;
@DataField(pos = 6)
String code;
classe Editor
@DataField(pos = 8)
String name;
Remarques: - L'annotation @DataField indique la position de la valeur dans l'enregistrement CSV - Pour cet exemple, nous avons un objet Author (Charles, Moulliard) contenant une liste de 2 livres ("Camel in action" et "Camel in action 2 "). Le premier livre a trois références (ISBN 1234, ISBN 5678, ISBN 999) et la deuxième référence (ISBB 1111). Auteur contient également une liste de deux rédacteurs en chef ("équipage", "manning 2")
Voici un exemple et le résultat voulu
"prenom", "lastName", "âge", "title", "année", "type", "code", "nom" "charles", "moulliard", "chameau en action", "2009", "ISBN", "1234", "manning", "43" "charles", "moulliard", "chameau en action", "2009", "ISBN", "1234", "manning 2", "43" "charles", "moulliard", "chameau en action", " 2009 "," ISBN "," 5678 "," manning "," 43 " " charles "," moulliard "," chameau en action "," 2009 "," ISBN "," 5678 "," manning 2 ", "43" "charles", "moulliard", "chameau en action", "2009", "ISBN", "9999", "manning", "43" "charle s "," moulliard "," chameau en action "," 2009 "," ISBN "," 9999 "," manning 2 "," 43 " " charles "," moulliard "," chameau en action 2 "," 2011 "," ISBB "," 1111 "," manning "," 43 " " charles "," moulliard "," chameau en action 2 "," 2011 "," ISBB "," 1111 "," manning 2 " , "43"
J'ai essayé d'utiliser une fonction récursive pour mettre des valeurs de champs dans Map of LinkedList: Map où Integer = position du champ dans la liste CSV et Linkedlist = mais j'ai perdu des informations sur la position de l'élément dans l'arbre.
Cordialement,
Charles
pourrait vous montrer le code que vous avez essayé? Il donnera un peu plus de perspicacité où le problème réside – Toad
Le code est plus grand que 600 caractères. – cmoulliard
Carte values = new HashMap (); values.put (1, Arrays.asList ("Charles")); values.put (2, Arrays.asList ("Moulliard")); values.put (3, Arrays.asList ("Chameau en action", "Chameau en action 2")); values.put (4, Arrays.asList ("2009", "2011")); values.put (5, Arrays.asList ("ISBN", "ISBN", "ISBN")); values.put (6, tableaux.asList ("1234", "9876", "7777")); –
cmoulliard