2016-12-02 2 views
0

の1つの整数やリストでオブジェクトへの行き方:MyBatisの - 私はテーブルを以下の表にしているが整数

IDofDog, IDOfOwner 
1   4 
2   4 
3   3 
4   3 

あなたが見ることができるように、1人はより多くのその1匹の犬を持つことができます。

class A{ 
    int ownerID; 
    List <Integer> dogs; 
} 

それが(たとえば4用)選択した所有者の彼の犬のために取得することは可能です:私は、クラスを持っていますか?私ははあなたが@Result注釈でこれを行うことができるかもしれないと思う

a.ownerID = 4 
a.dogs = [1,2] 

答えて

0

:より正確には、私は、そのようなことをA aオブジェクトを取得する(MyBatisのを使用して)したいと思います。以下のような何か...それを行うの

interface DogRepo { 

    @Select("Select distinct IdOfOwner as ownerId from DogOwnership") 
    @Results(@Result(column = "ownerId", property = "dogs", many = @Many(select = "getDogIdsForOwner"))) 
    A getDogsByOwner(); 

    @Select("Select IdofDog from DogOwnership where IdOfOwner=#{ownerId}") 
    List<Integer> getDogIdsForOwner(@Param("ownerId") int ownerId); 
} 

おそらくない最も効率的な方法は、それだけの行を読んで、手動でオブジェクトを構築する方が効率的かもしれません。

+0

特定のオーナーとその犬を取得するには、最初のクエリ(およびメソッドパラメータ)に 'IdOfOwner =#{ownerId}'を追加できます。 – BretC

+0

本当に効きますか? –

+0

@ HaskellFun私はそれを実行していないと認めますが、別のプロジェクトでこれまでと同じようなものを見たことがあります – BretC

関連する問題