Hibernate多对一关联映射

1.<many-to-one>会在多的一端添加一个外键,指向一的一端,这个外键是由<many-to-one>中的column属性定义的,如果忽略这个属性,默认创建的外键与实体类的属性名相同。

2.cascade是级联对象,是对象之间的连锁操作,指明哪些操作会从父对象级联到关联的对象。

   例子:

    a.情况一:插入

public void testMany2One1(){
		Session session=null;
		try{
			session=HibernateUtils.getSession();
			session.beginTransaction();
			Group g=new Group();//组类(一个具体的组)
			g.setName("hiberante");
			User user=new User();
			user.setCreateDate(new Date());
			user.setExpireDate(new Date());
			user.setGroup(g);
			user.setName("fy");
			user.setPassword("20041223");
			session.save(user);
			session.getTransaction().commit();
		}catch(Exception e){
			e.printStackTrace();
			session.getTransaction().rollback();
			
		}finally{
			HibernateUtils.close(session);
		}
	}

    插入是必须设置cascade。

    b.情况二:查询

public void testMany2One2(){
		Session session=null;
		try{
			session=HibernateUtils.getSession();
			session.beginTransaction();
			User user=(User)session.load(User.class, 4);
			System.out.println("-------name-----"+user.getName());
			System.out.println("-------group--"+user.getGroup().getName());
			session.getTransaction().commit();
		}catch(Exception e){
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally{
			HibernateUtils.close(session);
		}
	}

    查询时可以不设置cascade。

即:cascade只对增删改起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值