1. 程式人生 > >1.24 集合對映(set,list,map的使用)

1.24 集合對映(set,list,map的使用)

一、在一對多關係中,“一”方要加入變數儲存多方資訊。可以用set和list實現。一般用set,少數用list(物件需要排序時用list)

@Entity

@Table(name="t_group")
public class Group {
private int id;
private String name;
//private Set<User> users = new HashSet<User>();

private List<User> users = new ArrayList<User>();

@OneToMany(mappedBy="group",
cascade={CascadeType.ALL}
)
@OrderBy("name ASC")                                                  ‘按照名字排序,按升序排

public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}


二、Map的使用

private Map<Integer, User> users = new HashMap<Integer, User>();

@OneToMany(mappedBy="group", cascade=CascadeType.ALL)
@MapKey(name="id")
public Map<Integer, User> getUsers() {
return users;
}
public void setUsers(Map<Integer, User> users) {
this.users = users;
}


}

測試程式碼:

@Test
public void testLoadGroup() {


Session s = sessionFactory.getCurrentSession();
s.beginTransaction();

Group g = (Group)s.load(Group.class, 1);
for(Map.Entry<Integer, User> entry : g.getUsers().entrySet()) {
System.out.println(entry.getValue().getName());
}


s.getTransaction().commit();

}