Karte von java.util.Karte Feld mit MyBatis

Möchte ich die Daten zuordnen zu java.util.Map Attribut mit MyBatis. Ich habe einfache POJOs wie diese:

public class Bar {
     ...fields
}

public class Foo {
    private Map<String, Bar> bars;

   public Foo() {
        bars = new HashMap<String, Bar>();
   }

   ...

}

Wie kann ich map-Daten bars mit MyBatis? Beispiel unten nicht funktioniert, weil es setzt immer wieder neue anzeigen ein.

<resultMap id="fooResultMap" type="Foo">
   ...attributes
    <association property="bars" resultMap="barResultMap" />
</resultMap>

<resultMap id="barResultMap" type="map">
        <result property="key" column="bar_key" />
  <association property="value" javaType="Bar">
    ...attributes
  </association>
</resultMap>
  • Sollte die resultMap in fooResultMap den Verein verweisen zu barResultMap, anstatt priceMapResultMap? Ich verstehe nicht, was der Teil "Preis" spielt in Ihrer Frage. Sie wollen zu füllen Foo mit vielen Bars als Karte, sondern als eine Liste, richtig?
  • Hallo danke das war Tippfehler, den ich korrigiert es. Sie Recht ich will zu füllen Foo mit vielen Bars als Karte, sondern als eine Liste, kann aber nicht, damit es richtig funktioniert.
  • OK, also das nächste Fragen - 1) gibt es eine 1:N-Beziehung zwischen foos und bars in der Datenbank? (1 Foo kann viele Balken)? 2) In deinem SQL-Code für die Zuordnung sind Sie ziehen beide wieder in einer einzigen Abfrage? 3) Wenn Sie sagen, es funktioniert nicht, weil "es setzt immer wieder neue Karte auf Feld" meinst du es ist das überschreiben der "bars" - Karte, die Sie in erstellt der Konstruktor Foo - ist es anders, Rückkehr eine Karte oder was ist es derzeit zurück?
  • 1) ja, es ist 1:N-Beziehung - Foo kann N (0..*) Bars. 2) Ja, ich wählen Sie alles in eine Abfrage. 3) so Wie ich das verstehe MyBatis, wenn ich <association Eigentum="Balken"... ich neue Map für jede Zeile, also ja, Es ist überschreiben Karte habe ich erstellt, im Konstruktor Foo. Und schließlich ja, es ist die Karte, aber mit nur einem Bar (immer die letzten). Ich glaube, ich brauche etwas ähnliches tag wie <collection> für Karten.
Schreibe einen Kommentar