Reputation: 992
Is there a way to create dynamic column (as a key/value) names using the values returned from the query throw DIH (DataImportHandler)?
For example:
<entity name="foo" dataSource="my_database" query="select key,value from foo where id=${item.id}">
<field column="${foo.key}" value="${foo.value}" name="${foo.key}_s"/>
</entity>
??
Upvotes: 8
Views: 2003
Reputation: 52799
Use ScriptTransformer -
Example -
Data Config - Add custom field -
<script><![CDATA[
function addfield(row){
var fieldName = row.get('key') + "_s"
row.put(fieldName, row.get('value'));
return row;
}
]]></script>
Entity mapping -
<entity name="foo" dataSource="my_database" transformer="script:addfield" query="select key,value from foo where id=${item.id}">
......
</entity>
Upvotes: 11