Hibernate之多对多关系之间的关系映射

拿个简单的例子做比较神秘是多对多,一个职员在公司有很多岗位,比如保安,保洁,一个岗位又对应很多人

看下我们的实体类吧

 

 

============================配置文件=============================

 

 

 

===================================测试代码=================================

package Many2many;




import java.util.Set;


import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;


import Bean.Rolm;
import Bean.User;
import common.HibernateUitels;


public class TestA {
@Test
public void testadd() {
Session session=HibernateUitels.opensession();
Transaction tx = session.beginTransaction();

User u1=new User();
u1.setName("11");

User u2=new User();
u2.setName("22");

Rolm r1=new Rolm();
r1.setName("bb");

Rolm r2=new Rolm();
r2.setName("bj");

u1.getRolms().add(r1);
u1.getRolms().add(r2);

u2.getRolms().add(r1);
u2.getRolms().add(r2);

r1.getUsers().add(u1);
r1.getUsers().add(u2);

r2.getUsers().add(u1);
r2.getUsers().add(u2);

session.save(u1);
session.save(u2);
session.save(r1);
session.save(r2);

tx.commit();
session.close();
}
@Test
//为用户设置职位
public void testss() {
Session session=HibernateUitels.opensession();
Transaction tx = session.beginTransaction();

User user =(User) session.get(User.class,3);

Rolm rolm=new Rolm();
rolm.setName("ngg");

user.getRolms().add(rolm);

session.save(rolm);

tx.commit();
session.close();
}

@Test
//为职员删除一个职位
public void delete() {
Session session=HibernateUitels.opensession();
Transaction tx = session.beginTransaction();

User user = session.get(User.class, 3);
Set<Rolm> rolms = user.getRolms();

Rolm rolm = session.get(Rolm.class,4);
rolms.remove(rolm);

tx.commit();
session.close();
}
}

如果你喜欢,或者有帮助到你的地方可以关注我的微信公众号,田园折耳,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值