2011-01-07 9 views
0

データを供給するためにSOLR DataImportHandlerを使用しようとしています。設定は簡単で簡単でした。ルートエンティティから1つのフィールドしかインポートしていないときは、すべて正常に動作しました。SOLR DataImportHandlerは式を評価しません

しかし、入れ子になったエンティティからフィールドをインポートしようとしたとき、それは機能しません。私は実際に困惑しています。ここで

は私のdataconfigから関連するスニペットです:

<dataConfig> 
    <dataSource ... /> 
    <document> 
     <entity name="a" query="select id, b_id from a" pk="id"> 
       <entity name="b" query="select title from b where id ='${a.b_id}'"> 
        <field column="title" name="title" /> 
       </entity> 
     </entity> 
    </document> 
</dataConfig> 

私は冗長がオンで、私のようなものを参照することができますDIH開発用コンソールを使用してデバッグインポートしようとすると:

... 
<lst name="document#3"> 
<str>----------- row #1-------------</str> 
<str name="ID">PST_210-SI.10    </str> 
<str name="B_ID">6c2r3490seeqvb86pgb4c4trf9</str> 
<str>---------------------------------------------</str> 
− 
<lst name="entity:b"> 
<str name="query">select title from b where id =''</str> 
<str name="query">select title from b where id =''</str> 
<str name="query">select title from b where id =''</str> 
<str name="time-taken">0:0:0.1</str> 
<str name="time-taken">0:0:0.1</str> 
<str name="time-taken">0:0:0.1</str> 
</lst> 
</lst> 

を私は考えます興味深い点は、エンティティbの3つのクエリで、idフィールドは空です。それは私には、$ {a.b_id}のように評価されていないようですが、私は理由を見つけることができません。

誰でも助けてください。 ありがとうございます。

答えて

2

いつものようにハ、 - 私はすべてのアイデアを実行して、コミュニティに質問したときに、解決策を見つけるためにしようと、全体の午後を過ごした後..私は突然、ソリューションを自分で見つける:)

キャッチは、大文字と小文字の区別でした - 冗長なXML出力を正しく見れば、何らかの理由でが存在します。だから私は式$ {a.B_ID}を使ってみました。

多分、大文字はOracle JDBCドライバのためにのみ指定できます。