Ich versuche, eine SQL zu erzeugen, die wie unten in mybatis ist.
%Vor%Und mein Eingabeparametertyp ist HashMap. Jetzt Wie generiere ich SQL aus Mapper XML-Datei. Der folgende Code löst die Ausnahme aus, die besagt, dass map auf null ausgewertet wurde.
%Vor% Einer der anderen Ansätze besteht darin, eine Klasse mit Schlüsselwertfeldern zu erstellen, eine Objektliste zu erstellen und dann parameterType
als list
zu übergeben, was wie folgt aussehen würde.
Aber gibt es einen Weg zu meiner Mapper Arbeit für den ersten Ansatz? Anders als die Abfrage in die Union zu ändern
Diese Lösung funktioniert seit Version 3.2 nicht mehr. Weitere Informationen finden Sie unter Problem # 208 !
Endlich habe ich die Lösung für HashMap
Ich sollte entrySet()
verwenden, um es iterierbar zu machen
Eine weitere Isue, die mit dem Parameternamen konfrontiert wurde, wurde nicht injiziert. Daher wurde @Param
annotation
Die Mapper-Schnittstelle sieht daher wie folgt aus:
%Vor%In Ihrem ersten Beispiel sucht mybatis nach einem Eintrag in der ParameterMap mit dem Schlüssel "map". Ich vermute, dass Sie tatsächlich versuchen, den Schlüsselsatz der ParameterMap zu iterieren. Wenn Sie die Karte innerhalb der Parameterkarte mit dem Schlüssel "map" verschachtelt haben, sollte es funktionieren.
Im zweiten Beispiel sollten Sie nur HashMap.entrySet () übergeben können, das einen getKey und getValue liefert.