2011-10-27 23 views
6

DIH (DataImportHandler) sorgu atımından döndürülen değerlerini kullanarak dinamik sütun (anahtar/değer olarak) adları oluşturmanın bir yolu var mı? ÖrneğinDIH (DataImportHandler) kullanarak dinamik sütun adları

:

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

??

cevap

8

Kullanım ScriptTransformer -

Örnek -

Veri Yapılandırma - Add özel alanı -

<script><![CDATA[ 
     function addfield(row){ 
      var fieldName = row.get('key') + "_s" 
      row.put(fieldName, row.get('value')); 
      return row; 
     } 
]]></script> 

Varlık haritalama - dikkat edilmesi gereken

<entity name="foo" dataSource="my_database" transformer="script:addfield" query="select key,value from foo where id=${item.id}"> 
    ...... 
</entity> 
+0

1 şey. Eğer 'foo' işletmenin sorguda kendilerine takma sonra' key' veya 'value' adlı sizin şemada alanları var ve buna göre başka ad ad kullanma trafo işlevini değiştirin. (Ben maalesef "anahtar" ile aynı ada sahip çok değerli bir alan vardı ve bu sorgudaki değerler çok değerli alana ekledi.) – arun

İlgili konular