Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mybatis:Ordnen Sie einen Teil des SQL HashMap innerhalb von POJO zu

Nach vielen Versuchen habe ich die Lösung wie folgt gefunden:

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"/>

In diesem Fall würde meine zusätzliche Spalten-HashMap nach dem Mapping so aussehen:

{column_1=value1, column_2=value2}

Hinweis:Ich wusste nicht, wie viele Spalten ich brauchte, wenn Sie genau wissen, wie viele Sie brauchen, und es sich nicht ändert, können Sie nur Ihre Spalten zuordnen, indem Sie die zweite resultMap wie folgt ändern:

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