在Java中,一对多映射可以使用集合来实现。常见的一对多映射关系有两种方式:List和Map。
- 使用List实现一对多映射:
public class OneToManyMapping { private ListmanyList; // 构造方法 public OneToManyMapping() { manyList = new ArrayList<>(); } // 添加多个实体到列表中 public void addManyEntity(ManyEntity manyEntity) { manyList.add(manyEntity); } // 获取所有多个实体 public List getManyList() { return manyList; } } public class ManyEntity { private String name; // 构造方法 public ManyEntity(String name) { this.name = name; } // 获取实体名称 public String getName() { return name; } } // 使用示例 OneToManyMapping oneToManyMapping = new OneToManyMapping(); oneToManyMapping.addManyEntity(new ManyEntity("Entity 1")); oneToManyMapping.addManyEntity(new ManyEntity("Entity 2")); List manyList = oneToManyMapping.getManyList(); for (ManyEntity manyEntity : manyList) { System.out.println(manyEntity.getName()); }
- 使用Map实现一对多映射:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class OneToManyMapping { private Map> manyMap; // 构造方法 public OneToManyMapping() { manyMap = new HashMap<>(); } // 添加多个实体到映射中 public void addManyEntity(String key, ManyEntity manyEntity) { if (manyMap.containsKey(key)) { manyMap.get(key).add(manyEntity); } else { List manyList = new ArrayList<>(); manyList.add(manyEntity); manyMap.put(key, manyList); } } // 获取指定key的多个实体 public List getManyEntities(String key) { return manyMap.get(key); } } public class ManyEntity { private String name; // 构造方法 public ManyEntity(String name) { this.name = name; } // 获取实体名称 public String getName() { return name; } } // 使用示例 OneToManyMapping oneToManyMapping = new OneToManyMapping(); oneToManyMapping.addManyEntity("Key 1", new ManyEntity("Entity 1")); oneToManyMapping.addManyEntity("Key 1", new ManyEntity("Entity 2")); oneToManyMapping.addManyEntity("Key 2", new ManyEntity("Entity 3")); List manyList1 = oneToManyMapping.getManyEntities("Key 1"); for (ManyEntity manyEntity : manyList1) { System.out.println(manyEntity.getName()); } List manyList2 = oneToManyMapping.getManyEntities("Key 2"); for (ManyEntity manyEntity : manyList2) { System.out.println(manyEntity.getName()); }
以上是两种常见的一对多映射的配置方式。具体选择哪种方式取决于实际需求和使用场景。