2016-04-08 15 views
0

bu benim sınıfım .. basit tuttu. MyBatis Ebeveyn Çocuk ilişkisi

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

    getter/setter... 
} 

i 2 sütun kimliği, parentid bir tablo (DummyTable) ve i, örneğin satır sayısı olduğunu varsayalım:

ID parentId
1, 1
(giriş ebeveyndir) 2, 1
3 (giriş id 1 ile üst sahiptir), 2 ..
4, 2
5, 3, ..
6, 6 (giriştir (giriş id 2 üst vardır) ebeveyn)
7, 6 (giriş, 6 ile birlikte ebeveyn ile birlikte) ek açıklama ile mesela nasıl göründüğünü söyler. ben böyle denedim:

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() 
    } 

birisi bunun nasıl tarif edilir bir sayfa .. ya da herhangi bir fikir için bir bağlantı vardır ???

+0

Eşleme yöntemi getAllDummies ne döndürüyor? GetDummyChildren yöntemi tek DummyClass Object'i döndürürken, dummyList özelliğiniz bir Liste'dir. List getDummyChildren() olması gerekmez mi? – Lucky

cevap

0

Tamam ben SelectTüm = bir hata ..

kamu arayüz DummyMapper {

son String "* DummyTable arasından seçim" did; final Dize SelectDummy = "Select * from from DummyTable from 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); 
} 

Önce ben getDummyChildren bir dönüş değeri olarak bir List kullanmalıdır .. haklısın. Sonra getDummyChildren'i @Param ("id") ve int id tarafından genişlettim.

Sorun çözüldü. Benim için iyi çalıştı.