如何使用MyBatis注释(甚至没有它)在DAO对象中填充集合?

时间:2012-12-28 07:28:27

标签: sql orm ibatis mybatis

我有一个DAO User

class User{
  int id,
  int name,
  List<Vehicle> vehicles;
}

在我的UserMapper.java界面中,我有一个给我用户DAO的方法:

@Select("select u.id, u.name, v.id, v.name from User u, Vehicle v where u.id=#{id} and v.user_id=u.id")
public User getUser(int id);

如何确保上述查询正确填充User对象的车辆集合? 请使用注释(仅限XML作为最后的手段)

1 个答案:

答案 0 :(得分:0)

来自Mybatis 3 User Guide

  

注意:您会注意到Annotations不支持连接映射   API。这是由于Java Annotations中的限制没有   允许循环引用。

你能做的最好就是这样,

@Results({
    @Result(property = "id", column = "id", id = true),
    @Result(property = "name", column = "name"),
    @Result(many=@Many(select="your select"), javaType=Vehicle.class)
})

@Select(“select u.id,u.name,v.id,v.name from User u,Vehicle v where u.id =#{id} and v.user_id = u.id”)     public User getUser(int id);

我的建议,使用xml。