SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
//插入一条数据到Category
Category c =new Category();
c.setName("c1");
s.save(c);
//将以上数据关联到product表中,在product表中设置外键
Product p = (Product) s.get(Product.class, 2);
p.setCategory(c);
s.update(p);
s.getTransaction().commit();
s.close();
sf.close();
在hibernate设置多对一关系。
步骤:
- 在Product实体类中加入Category属性
- 配置Product.hbm.xml文件设置成多对一关系
- 插入Category数据时将category中id与product进行关联。
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Set users = new HashSet();
for (int i = 0; i < 3; i++) {
User u =new User();
u.setName("user"+ UUID.randomUUID().toString());
u.setPassword("12345"+i);
users.add(u);
session.save(u);
}
//产品1被用户1,2,3购买
Product p1 = (Product) session.get(Product.class, 1);
p1.setUsers(users);
session.save(p1);
session.getTransaction().commit();
session.close();
sf.close();
注意:该代码执行一次会根据Set集合的大小来向user_project中插入数据,第二次执行会将关联表中的uid进行更新,而不是在表中增加数据。



