1.建立User表,引入Account
package domain;
import java.io.Serializable;
import java.util.List;
public class User implements Serializable {
private String USERname;
private String useraddress;
private String usersex;
private String birthday;
private Integer userid;
public List<Account> getAccount() {
return account;
}
public void setAccount(List<Account> account) {
this.account = account;
}
private List<Account> account;
public String getUSERname() {
return USERname;
}
public void setUSERname(String USERname) {
this.USERname = USERname;
}
public String getUseraddress() {
return useraddress;
}
public void setUseraddress(String useraddress) {
this.useraddress = useraddress;
}
public String getUsersex() {
return usersex;
}
public void setUsersex(String usersex) {
this.usersex = usersex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
@Override
public String toString() {
return "User{" +
"USERname='" + USERname + '\'' +
", useraddress='" + useraddress + '\'' +
", usersex='" + usersex + '\'' +
", birthday='" + birthday + '\'' +
", userid=" + userid +
", account=" + account +
'}';
}
}
2.接口配置:
package dao;
import domain.User;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.FetchType;
import java.util.List;
public interface IUserDao {
//查询所有
@Select("select* from user")
@Results(id="userMap",value = {
@Result(id=true, column="id", property="userid"),
@Result(column = "username" ,property="USERname"),
@Result(column = "sex" ,property="usersex"),
@Result(column = "address", property="useraddress"),
@Result(property = "account", column ="id",many=@Many(select = "dao.IAccountDao.findById",fetchType =
FetchType.LAZY) )
})
List<User> findAll();
@Select("select* from user where id=#{id}")
@ResultMap("userMap")
User findById(Integer id);
@ResultMap("userMap")
@Select("select* from user where username like #{username}")
List<User> findByName(String name);
}
3.测试即可
注意:(核心)
实际上与多对一相反而已,对照即可
@Result(property = “account”, column =“id”,many=@Many(select = “dao.IAccountDao.findById”,fetchType =
FetchType.LAZY) )