mybatis使用注解完成一对一查询,一对多查询
时间: 2023-05-22 16:03:42 浏览: 71
可以使用@One和@Many注解实现一对一查询和一对多查询。
例如,对于一对一查询:
@Select("SELECT * FROM user WHERE id=#{id}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "order", column = "id",
one = @One(select = "com.example.mapper.OrderMapper.getOrderById"))
})
User getUserById(@Param("id") int id);
其中,one属性指定了@One注解,并传入了一个select属性,表示在查询用户时,同时查询其订单信息,返回的User对象中会包含订单信息。
对于一对多查询,可以使用@Many注解:
@Select("SELECT * FROM user WHERE id=#{id}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "orders", column = "id",
many = @Many(select = "com.example.mapper.OrderMapper.getOrdersByUserId"))
})
User getUserById(@Param("id") int id);
其中,many属性指定了@Many注解,并传入了一个select属性,表示在查询用户时,同时查询其所有订单信息,返回的User对象中会包含一个订单列表。