0

我需要你的帮助和技巧来用推土机映射数据。

存在以下情况:

  • 从服务层获取 String [ ] [ ]。
    • 第一个 [ ] 代表行
    • 第二个[]代表列

仅供参考:此数据取决于请求参数“表”。

// exemplary service call
String[] [] result = service.getData (String table);
String[] [] result = service.getData (Enum table);

根据参数表,必须使用另一个目标实体。

例子 :

  • 参数“table_a”的字符串[][] 应使用目标对象“com.foo.TableA”
  • 参数“table_b”的字符串[][] 应使用目标对象“com.bar.TableB”

服务层无法更改。该层始终返回此数据结构作为结果。

我的问题是我对这种情况没有好的起点。

我必须遍历第一个 [] 然后依赖于参数表,必须进行映射。

// useful way?
List<com.foo.TableA> mappedResult = new ArrayList<com.foo.TableA>();
for (int i = 0; i < result.size ; i++) {
    String[] rowData = result[i];
    mappedResult.add(mapper.map(rowData; com.foo.TableA.class));
}


// mapping.xml
<mappings>
  <mapping>
      <class-a>how to configure String[] ?  </class-a>
      <class-b> com.foo.TableA </class-b>

      <field>
          <a>src[0] </a>  // 1st column
          <b>column_id</b>
      </field>
  <mapping>
</mappings>

欢迎任何提示!

先感谢您

4

1 回答 1

0

为了从字符串数组访问数据,我使用了一个包装器

public class RowDataWrapper {

    private final row[];
    public RowDataWrapper (String[] row) {
        this.row=row;
    }

}

及其在 mapping.xml 中的用法

<mappings>
  <mapping>
      <class-a>foo.bar.RowDataWrapper</class-a>
      <class-b>com.foo.TableA</class-b>

      <field>
          <a>row[0] </a>  // 1st column
          <b>column_id</b>
      </field>
  <mapping>
</mappings>
于 2013-04-15T10:44:41.343 回答