Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mybatis:Ánh xạ một phần của SQL sang HashMap bên trong POJO

Sau nhiều lần thử, tôi đã tìm ra giải pháp như sau:

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

Trong trường hợp này, HashMap aditionalColumns của tôi sẽ trông giống như thế này sau khi ánh xạ:

{column_1=value1, column_2=value2}

Lưu ý:Tôi không biết mình cần bao nhiêu cột, nếu bạn biết chính xác số lượng bạn cần và nó sẽ không thay đổi, bạn chỉ có thể ánh xạ các cột của mình thay đổi kết quả thứ hai Bản đồ như sau:

<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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Url JDBC cho cấu hình MySQL để sử dụng mã hóa ký tự utf8

  2. Khởi động mùa xuân - Cài đặt MySQL không hoạt động

  3. PHP - Laravel 5 lấy dữ liệu vào bảng html từ 3 bảng cơ sở dữ liệu SQL với cột DATA làm tiêu đề

  4. Tăng tốc bảng MyISAM chỉ đọc

  5. Trả về một biến sql cho PHP