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...

//测试:
                // 存;
		User u1 = new User();
		u1.setName("u1_name");
		User u2 = new User();
		u2.setName("u2_name");

		Configuration cfg = new Configuration().configure();
		SessionFactory factory = cfg.buildSessionFactory();
		Session session = factory.getCurrentSession();
		session.beginTransaction();
		session.save(u1);
		session.save(u2);
		session.getTransaction().commit();

		Session session2 = factory.getCurrentSession();
		session2.beginTransaction();

		Group group = new Group();
		group.setName("u_group");
		group.getMap().put(u1.getId(), u1);
		group.getMap().put(u2.getId(), u2);

		u1.setGroup(group);
		u2.setGroup(group);
		session2.save(group);
		session2.getTransaction().commit();

		// 取;
		Session session3 = factory.getCurrentSession();
		session3.beginTransaction();
		Group _g = (Group) session3.load(Group.class, group.getId());

		for (Map.Entry<Integer, User> entry : _g.getMap().entrySet()) {
			System.out.println(entry.getValue().getName());
		}
		session3.getTransaction().commit();


转载于:https://my.oschina.net/u/215476/blog/62662

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值