2016-10-08 4 views
-1

私はJavaクラスに私の春ブーツでYAMLをマップしようとしていますが、ここで私がマッピングされた2つのテーブルを取得しています私のYAMLとJavaクラス春ブーツYAMLオブジェクトのマッピング

--- 
tables: 

    trs_fact_txn_detail: 
    tablespecificparams: 
     expiredinterval: "90d" 
     fields: "abc" 

    trs_fact_txn_detail_et: 
    tablespecificparams: 
     expiredinterval: "56d" 
     fields: "abcdef" 



@Configuration 
@ConfigurationProperties(locations = {"${table.config.location}"}) 
public class RedshiftTableConfig { 

    private Map<String, tablespecificparams> tables; 

    public Map<String, tablespecificparams> getTables() { 
     return tables; 
    } 

    public void setTables(Map<String, tablespecificparams> tables) { 
     this.tables = tables; 
    } 

    public static final class tablespecificparams { 

     String expiredinterval; 
     String fields; 

     public String getExpiredinterval() { 
      return expiredinterval; 
     } 
     public void setExpiredinterval(String expiredinterval) { 
      this.expiredinterval = expiredinterval; 
     } 
     public String getFields() { 
      return fields; 
     } 
     public void setFields(String fields) { 
      this.fields = fields; 
     } 

    } 
} 

です。いずれにしても、tablespecificparametersの値はnullと思われます。私はしばらくの間デバッグしていました。ここでテーブル指定のパラメータをマップするには ?

+0

@Anthon。私は意図した質問がここではっきりしていると思います。それがなぜ投票されたのかわからない-1。とにかく私は明らかに明快さをもたらすために質問を明示的に追加しました –

+0

更新ありがとうございます。なぜ1つの投稿がダウン(またはアップ)投票され、他の投稿が投票されないのかの本当の理由は、しばしば不明である。特に「役に立たない」と投票することは、非常に主観的なIMOである。その人は、投票が一方的に良い(複数の復讐投票などを阻止する)ときにコメントする必要はありませんが、他方ではイライラする可能性があります。あなたの問題が受け入れられる答えを得ることを願っています。私はYAMLを知っていますが、この千年が始まって以来Javaを使用していないので、あなたを助けません。 – Anthon

答えて

0

設定ファイルは以下のようになります。

@Configuration 
@ConfigurationProperties(locations = {"${table.config.location}",prefix = "tables"}) 
public class RedshiftTableConfig { 

private Map<String, tablespecificparams> trs_fact_txn_detail; 

public Map<String, tablespecificparams> getTrs_fact_txn_detail() { 
    return trs_fact_txn_detail; 
} 

public void setTrs_fact_txn_detail(Map<String, tablespecificparams> trs_fact_txn_detail) { 
    this.trs_fact_txn_detail = trs_fact_txn_detail; 
} 

public static final class tablespecificparams { 

    String expiredinterval; 
    String fields; 

    public String getExpiredinterval() { 
     return expiredinterval; 
    } 
    public void setExpiredinterval(String expiredinterval) { 
     this.expiredinterval = expiredinterval; 
    } 
    public String getFields() { 
     return fields; 
    } 
    public void setFields(String fields) { 
     this.fields = fields; 
    } 
    } 
} 

yamlファイルには、適切な間隔で入力する必要があります。

tables: 

trs_fact_txn_detail: 
    tablespecificparams: 
     expiredinterval: "90d" 
     fields: "abc" 

trs_fact_txn_detail_et: 
     tablespecificparams: 
     expiredinterval: "56d" 
     fields: "abcdef" 
+0

これは私のyamlと一致しません。私はtrs_fact_txn_detail、trs_fact_txn_detail_et宣言された複数のテーブルを持っており、ここのコードは1つのテーブルにのみマップします。 –

0

yamlから文字列 "bankspecificparams"を削除して修正しました。

--- 
tables: 

    trs_fact_txn_detail: 
     expiredinterval: "90d" 
     fields: "abc" 

    trs_fact_txn_detail_et: 
     expiredinterval: "56d" 
     fields: "abcdef"