Ich habe eine sehr einfache Datenbanktabelle namens Regionen, in denen jede Region eine übergeordnete Region haben kann.Erstellen Sie ein rekursives Objektdiagramm aus einem Tupel mit Scala
mysql> describe region;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| region_code | char(3) | NO | PRI | NULL | |
| region_name | varchar(50) | NO | | NULL | |
| parent_region | char(3) | YES | MUL | NULL | |
+---------------+-------------+------+-----+---------+-------+
Nun möchte Ich mag diese Daten an einen Scala Objektgraph von Fallklassen hydratisieren, die jeweils einen Elternteil des gleichen Typs haben.
case class Region(code: String, name: String, parent: Option[Region])
Ich mache dies mit dem folgenden Code. Es funktioniert, aber es erstellt doppelte Objekte, die ich wenn möglich vermeiden möchte.
Ich weiß, wie man dies in der imperativen Weise tut, aber nicht den funktionalen Weg. Ich weiß, dass es einen expressiven Weg geben muss, dies mit Rekursion zu tun, aber ich kann es nicht herausfinden. Weißt du wie? Vielen Dank!
können Sie einen Blick auf https://github.com/cchantep/acolyte/tree/10m-anorm-tutorial – cchantep
Danke für den Link (und den Code-Schnipsel Reinigung), aber das ist nicht ganz das, was Ich suchte. Das Beispiel zeigt eine hierarchische Datenstruktur, nicht eine rekursive. Keine der Fallklassen bezieht sich auf Instanzen von sich selbst. –