2017-02-27 6 views
0

私はSpring-Data-Solrを使用しています.3つのテーブルがあり、それらのテーブルからすべてのデータを取得しようとしています。これは、テーブルの関係です:Solrのdata-configでマルチテーブルからデータを取得する方法

カーテーブル:

 ID, NAME, PRICE, DISTRICT_ID(FK), CITY_ID(FK) 

地区テーブル:

 ID(PK), DISTRICT_NAME 

市テーブル:データ-config.xmlの

 ID(PK), CITY_NAME 

私はすべてを取得してみてくださいデータと車のテーブルに次のようにSQLを持つレコード:

私の車のテーブルに11件のレコードを持っているが、私は、私はちょうど2つのレコードを受け取ったSolrの管理者で実行
<dataConfig> 
<dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:/temp/example/ex" user="sa" /> 
<document> 
    <entity name="city" query="select * from city"> 
     <field column="id" name="city_id" /> 
     <field column="name" name="city_name" /> 

     <entity name="cars" query="select * from cars where city_id='${city.id}'"> 
       <field column="id" name="id" /> 
       <field column="name" name="name" /> 
      <entity name="district" query="select * from district where id = '${cars.district_id}'"> 
       <field column="id" name="district_id" /> 
       <field column="name" name="district_name" /> 
      </entity> 
     </entity> 
    </entity> 
</document> 

車のテーブルにすべての(11レコード)を取得するには?おかげ

+0

になります。<エンティティ名= "地区" クエリ= "選択* id = '$ {cars.district_id}' "">にはcars.id ...またはcars.district_idが必要です。 –

+0

こんにちは、@AbhijitBashetti:ありがとう、詳細を教えてください。 –

+1

それはあなたのために働いたのですか?あなたは何を共有したいのですか? mutilpleクエリの代わりに、あなたはjoinを使って1つのクエリを持つことができますか? –

答えて

0
<dataConfig> 
<dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:/temp/example/ex" user="sa" /> 
<document> 
<entity name="city" query="select City.city_id ,City.city_name ,car.id ,car.name ,District.id from Car join City on city.id = car.CITY_ID join District on car.DISTRICT_ID = District.id "> 
    <field column="cityid" name="City.city_id" /> 
    <field column="cityname" name="City.city_name" /> 
    <field column="carid" name="car.id" /> 
    <field column="carname" name="car.name" /> 
    <field column="Districtid" name="District.id" /> 
    <etc... any column you need> 


</entity> 
</document> 

編集

それともビューでクエリを実行することができます[TempView] と設定が

<entity name="city" query="select * from TempView "> 
    <field column="cityid" name="City.city_id" /> 
    <field column="cityname" name="City.city_name" /> 
    <field column="carid" name="car.id" /> 
    <field column="carname" name="car.name" /> 
    <field column="Districtid" name="District.id" /> 
    <etc... any column you need> 


</entity> 
</document> 
関連する問題