sql >> Database teknologi >  >> RDS >> Mysql

Mybatis:Kort en del af SQL til HashMap inde i POJO

Efter mange forsøg fandt jeg løsningen som følger:

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 dette tilfælde ville mit ekstra Columns HashMap se sådan ud efter kortlægning:

{column_1=value1, column_2=value2}

Bemærk:Jeg vidste ikke, hvor mange kolonner jeg havde brug for, hvis du ved præcis, hvor mange du har brug for, og det vil ikke ændre sig, kan du kun kortlægge dine kolonner ved at ændre det andet resultatkort som følger:

<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. Sådan får du det bedste ud af PostgreSQL-logfiler

  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Kommunikationsforbindelsesfejl til fjerndatabasen

  3. Operand type clash:varchar er inkompatibel med varchar(50), der forsøger at indsætte i krypteret database

  4. Beregn (sum, maks, gennemsnit) kommasepareret kolonne i mysql