sql >> Databáze >  >> RDS >> Mysql

Mybatis:Mapujte část SQL na HashMap uvnitř POJO

Po mnoha pokusech jsem našel řešení takto:

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

V tomto případě by moje další HashMap sloupců vypadala po namapování takto:

{column_1=value1, column_2=value2}

Poznámka:Nevěděl jsem, kolik sloupců potřebuji, pokud přesně víte, kolik jich potřebujete, a nezmění se to, můžete namapovat pouze sloupce, které změní druhou výslednou mapu takto:

<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. Jak vytvořit index na LOWER (users.username) v Rails (pomocí postgres)

  2. připojení externí databáze mysql s php

  3. Výjimka syntaxe na spouštěči s více příkazy s MySQL a JDBC

  4. zabránit vkládání SQL