sql >> Databasteknik >  >> RDS >> Mysql

Mybatis:Kartlägg en del av SQL till HashMap inuti POJO

Efter många försök hittade jag lösningen enligt följande:

POJO:

private int id;
private String name;
private String surname;
private HashMap<String, Object> aditionalColumns;

// getters & setters

MyBatis Mapper:

<resultMap id="BaseResultMap" type="Person" automapping="true">
  <id column="id" property="id"/>
  <association
      property="aditionalColumns"
      resultMap="aditionalColumnsMapper" 
      columnPrefix="calculated_" />
</resultMap>

<resultMap id="aditionalColumnsMapper" type="map" autoMapping="true"/>

I det här fallet skulle mina ytterligare kolumner HashMap se ut så här efter mappning:

{column_1=value1, column_2=value2}

Obs:Jag visste inte hur många kolumner jag behövde, om du vet exakt hur många du behöver, och det kommer inte att ändras, kan du mappa endast dina kolumner och ändra den andra resultatkartan enligt följande:

<resultMap id="aditionalColumnsMapper" type="map">
    <result column="calculated_column_1" property="calculated_column_1"/>
    <result column="calculated_column_2" property="calculated_column_2"/>
</resultMap>



  1. Hur kan jag avsluta ett asynkront samtal så att det beter sig synkront?

  2. Talande:Calling Where on a relation

  3. Förbättrar prestanda genom att begränsa en fråga till en post

  4. Hitta rader i A som inte har en tillhörande rad i B, där FK är på B?