1.24 集合對映(set,list,map的使用)
阿新 • • 發佈:2019-01-29
一、在一對多關係中,“一”方要加入變數儲存多方資訊。可以用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();
}