当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,