2016-04-08 29 views
0

これは私のクラスです。私はそれを簡単に保ちました。MyBatis親子関係

public void DummyClass { 
    public int id; 
    public List<DummyClass> dummyList; 

    getter/setter... 
} 

はのParentID、iは2列IDを持つテーブル(DummyTable)を有すると仮定し、私は、例えば、行数を有する:

ID、PARENTID
1,1(エントリは、親である)
を 2、1(エントリは、IDが1の親を持つ)
3、2(エントリは、ID 2と親を持つ)
4,2 ..
5、3 ..
6,6(エントリであります親)
7、6(エントリには6の親があります)

注釈付きでmybatisでどのように見えるか教えてください。私はこのようにそれを試してみました:

public interface DummyMapper { 

final String SelectAll = "Select * from DummyTable"; 
final String SelectDummy = "Select * from DummyTable where parentid = #{id}"; 

     @Select(SelectAll) 
     @Results({ 
     @Result(property = "id", column = "id"), 
     @Result(property = "dummyList", column = "id", javaType = java.util.List.class, many = @Many(select="getDummyChildren") 
     }) 
     public DummyClass getAllDummies(); 

     @Select(SelectDummy) 
     public DummyClass getDummyChildren() 
    } 

誰かがこれを行う方法を説明しているページへのリンク..または任意のアイデアを持っています?

+0

マッパーメソッドgetAllDummiesは何を返しますか? dummyListプロパティはListですが、getDummyChildrenメソッドは単一のDummyClassオブジェクトを返します。リストではありません getDummyChildren()? – Lucky

答えて

0

OK私は..

パブリックインターフェイスDummyMapper {

最終文字列のSelectAll = "DummyTable SELECT * FROMを" 間違いをしました。 final String SelectDummy = "DummyTableから*を選択します。ただし、parentid =#{id}";

@Select(SelectAll) 
    @Results({ 
    @Result(property = "id", column = "id"), 
    @Result(property = "dummyList", column = "id", javaType = java.util.List.class, many = @Many(select="getDummyChildren") 
    }) 
    public DummyClass getAllDummies(); 

    @Select(SelectDummy) 
    public List<DummyClass> getDummyChildren(@Param("id") int id); 
} 

まず、私はListをgetDummyChildrenの戻り値として使用する必要があります。次に、@ Param( "id")とint idでgetDummyChildrenを拡張しました。

問題を解決しました。それは私のためにうまくいった。

関連する問題