sql >> Database >  >> RDS >> Mysql

Mybatis:wijs een deel van de SQL toe aan HashMap in POJO

Na veel proberen vond ik de oplossing als volgt:

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 dit geval zou mijn extraColumns HashMap er als volgt uitzien na het in kaart brengen:

{column_1=value1, column_2=value2}

Opmerking:ik wist niet hoeveel kolommen ik nodig had, als u precies weet hoeveel u er nodig heeft, en het zal niet veranderen, kunt u alleen uw kolommen toewijzen door de tweede resultMap als volgt te wijzigen:

<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. Hoe kan ik * uit een tabel in MySQL selecteren, maar bepaalde kolommen weglaten?

  2. Querytabel met verschillende lijst met variabelen met like

  3. draaitabel in mysql

  4. Hoe maak je een extended insert met JDBC zonder strings te bouwen?