Hibernate_Map_Mapping
//Class For Group
@Entity
@Table(name = "t_group")
public class Group {
private int id;//PK
private String name;
private Map<Integer, User> map = new HashMap<Integer, User>();
@OneToMany(mappedBy = "group", cascade = { CascadeType.ALL })
@MapKey(name="id")
public Map<Integer, User> getMap() {
return map;
}
gets/sets methods.....
//Class For User
public class User {
private int id;//PK
private String name;
private Group group;
// 对 User 对象相关联的对象都自动级联操作;
@ManyToOne(cascade = { CascadeType.ALL })
gets/sets methods...
01 //测试:
02 // 存;
03 User u1 = new User();
04 u1.setName("u1_name");
05 User u2 = new User();
06 u2.setName("u2_name");
07
08 Configuration cfg = new Configuration().configure();
09 SessionFactory factory = cfg.buildSessionFactory();
10 Session session = factory.getCurrentSession();
11 session.beginTransaction();
12 session.save(u1);
13 session.save(u2);
14 session.getTransaction().commit();
15
16 Session session2 = factory.getCurrentSession();
17 session2.beginTransaction();
18
19 Group group = new Group();
20 group.setName("u_group");
21 group.getMap().put(u1.getId(), u1);
22 group.getMap().put(u2.getId(), u2);
23
24 u1.setGroup(group); www.zzzyk.com
25 u2.setGroup(group);
26 session2.save(group);
27 session2.getTransaction().commit();
28
29 // 取;
30 Session session3 = factory.getCurrentSession();
31 session3.beginTransaction();
32 Group _g = (Group) session3.load(Group.class, group.getId());
33
34 for (Map.Entry<Integer, User> entry : _g.getMap().entrySet()) {
35 System.out.println(entry.getValue().getName());
36 }
37 session3.getTransaction().commit();
补充:软件开发 , Java ,