我有以下表格:
IDofDog, IDOfOwner
1 4
2 4
3 3
4 3
正如你所看到的,一个人可以拥有更多的那只狗。我也有一个班级:
class A{
int ownerID;
List <Integer> dogs;
}
是否可以为他的狗选择所有者(例如4
)?更确切地说,我想(使用mybatis)得到这样的A a
对象:
a.ownerID = 4
a.dogs = [1,2]
答案 0 :(得分:0)
我认为您可以使用@Result
注释执行此操作。有点像...
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);
}
可能不是最有效的方法,只需读取行并手动构建对象可能更有效。