实体的多对多映射,一般采用抽取第三张表的方式来解决,不论是单向关联还是双向关联都是这么做的,把两个表的关系放在第三张表中进行维护。
一、实体
有个用户实体user和角色实体role,一个角色可以有多个用户,一个用户可以有多个角色,那么这两个实体间的关系就是多对多。
Role:
public class Role {
private int id;
private String name;
public int getId() {
return id;
}
//省略get、set
}
User:
public class User {
private int id;
private String name;
private Set roles;//持有role的set
//省略get、set
}
二、创建映射文件
Role.hbm.xml:只是单纯的映射,不维护关系,单向关联